pat*_*vit 5 bash shell awk sed
我们想要从XML文件中读取XML属性.文件内容示例如下:
<properties>
<property name="abc" value="15"/>
<property name="xyz" value="26"/>
</properties>
Run Code Online (Sandbox Code Playgroud)
我们想要使用shell脚本读取属性"abc"的值(即15).
请建议使用shell命令来实现此目的.
您可以使用正确的XML解析器,如xmllint.如果您的版本支持xpath,则可以非常轻松地获取特定值.如果它不支持xpath,那么你可以使用如下--shell选项:
$ echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxml
/ > -------
value="15"
/ >
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用awk或sed格式化并从输出中提取所需的字段.
$ echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxmlfile | awk -F'[="]' '!/>/{print $(NF-1)}'
15
Run Code Online (Sandbox Code Playgroud)
您可以使用命令替换来捕获变量中的输出,方法是:
$ myvar=$(echo 'cat //properties/property[@name="abc"]/@value' | xmllint --shell myxml | awk -F'[="]' '!/>/{print $(NF-1)}')
$ echo "$myvar"
15
Run Code Online (Sandbox Code Playgroud)
使用除xmlparser之外的任何其他东西都容易出错并且容易破解.
| 归档时间: |
|
| 查看次数: |
15189 次 |
| 最近记录: |