我们想要从 XML 文件中读取 XML 属性。文件内容示例如下:
<properties>
<property name="abc" value="15"/>
<property name="xyz" value="26"/>
</properties>
我们想要使用 shell 脚本读取属性“abc”的值(即 15)。
请建议 shell 命令来实现这一点。
您可以使用适当的 XML 解析器,例如 xmllint。如果您的版本支持 xpath,那么获取特定值将非常容易。如果不支持xpath,那么你可以使用--shell
像这样的选项:
$ echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxml
/ > -------
value="15"
/ >
然后你可以使用awk
or sed
从输出中格式化并提取所需的字段。
$ echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxmlfile | awk -F'[="]' '!/>/{print $(NF-1)}'
15
您可以使用命令替换来捕获变量中的输出,方法是:
$ myvar=$(echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxml | awk -F'[="]' '!/>/{print $(NF-1)}')
$ echo "$myvar"
15
使用 xmlparser 以外的任何其他东西都容易出错并且很容易崩溃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)