如何查找包含字符串' dark'的xml文件和注释行

时间:2018-05-08 14:26:15

标签: bash awk

<hello>
<world>dark</world>
</hello>

到目前为止,我已经尝试过......

find . -name "*.xml" -print0 | while read -d $'\0' file; do awk '{print "<!--"$0"-->"}' "$file"; done 

......失败了。

但有些文件对于单个文件有多糟糕......

awk '{print "<!--"$0"-->"}' "$file"

......工作正常。

1 个答案:

答案 0 :(得分:1)

您最好不要使用awk来解析XML文件。而是使用XML解析器。

这是xmllint的示例:

find -name "*.xml" -exec bash -c 'xmllint --xpath "//*/world/text()" $1 >/dev/null 2>&1 && echo $1' _ {} \;

xpath表达式查找嵌套在任何其他标记中的标记<world>