使用 shell 脚本从 XML 文件中提取值

使用 shell 脚本从 XML 文件中提取值

filestore.xml我有需要从中提取的文件/local/armdata/data/filestore1/local/armdata/data/filestore2.

grep binariesDir filestore.xml
    <binariesDir>/local/armdata/data/filestore1</binariesDir>
    <binariesDir>/local/armdata/data/filestore2</binariesDir>

有什么办法可以做到这一点吗?

答案1

使用XMLStarlet:

xml sel -t -v '//binariesDir' filestore.xml

在安装了软件包的 Ubuntu 上xmlstarlet,我需要使用这个:

xmlstarlet sel -t -v '//binariesDir' filestore.xml

答案2

您可以使用sed

sed -nre 's:^.*<binariesDir>(.*)</binariesDir>.*$:\1:p' filestore.xml

这可以处理 binariesDir 的搜索以及提取<binariesDir>和之间的值</binariesDir>

相关内容