我遇到了一个有趣的(至少对我而言)问题。让我们拿一个xml文件:
<a>pair1a</a>
<b>pair1b</b>
<c>randomtext</c>
<a>pair2a</a>
<b>pair2b</b>
...
<b>
标签总是在标签之后<a>
。我想要得到的是<a>
和<b>
保存并关联在一起的内容。我应该如何在bash中解决这个问题,以便以后可以轻松访问和管理数据?我考虑过关联数组或将所有内容放在一个数组中并使用某种分隔符将内容与 b 分开(尽管这可能很棘手)。我的方法相当简单,将所有内容放入两个数组中,然后让它们使用单个索引(顺便说一句,我已经习惯了 perl 正则表达式,这就是 grep 正在使用的)。这可以更简单地完成吗?
a_Array=$(curl --silent -L $xml | grep -oP '(?<=<a>).*?(?=</a>)')
b_Array=$(curl --silent -L $xml | grep -oP '(?<=<b>).*?(?=</b>)')