【发布时间】:2020-07-28 10:27:23
【问题描述】:
我有一个格式如下的 XML 文件:
<classes>
<subject lb="Fall Sem 2020">
<name>Operating System</name>
<credit>3</credit>
<type>Theory</type>
<faculty>Prof. XYZ</faculty>
</subject>
<subject lb="Spring Sem 2020">
<name>Web Development</name>
<credit>3</credit>
<type>Lab</type>
</subject>
<subject lb="Fall Sem 2021">
<name>Computer Network</name>
<credit>3</credit>
<type>Theory</type>
<faculty>Prof. ABC</faculty>
</subject>
<subject lb="Spring Sem 2021">
<name>Software Engineering</name>
<credit>3</credit>
<type>Lab</type>
</subject>
</classes>
我可以使用sed 命令得到想要的结果。即sed -En 's/.* lb="([^"]+)".*/\1/p' file
输出:
Fall Sem 2020
Spring Sem 2020
Fall Sem 2021
Spring Sem 2021
我希望将此输出存储在一个数组中。 即
arr[0]="Fall Sem 2020"
我的尝试:
arr=($(sed -En 's/.* lb="([^"]+)".*/\1/p' file))
但在这种情况下,我将单个元素作为数组元素。 IE。
arr[0]="Fall"
【问题讨论】:
-
查看这个帖子 --> stackoverflow.com/questions/24628076/…
-
我想说,Q&A 中的最佳答案是最后一个使用
readarray的答案。