<hello>
<world>dark</world>
</hello>到目前为止我已经试过..。
find . -name "*.xml" -print0 | while read -d $'\0' file; do awk '{print "<!--"$0"-->"}' "$file"; done ..。但失败了。
但对于一个文件来说.
awk '{print "<!--"$0"-->"}' "$file"..。效果很好。
发布于 2018-05-08 14:42:12
要覆盖“查找包含字符串‘深色’的xml文件和注释行”的条件,确切地说:
find + grep + sed解决方案:
find . -type f -name "*.xml" -exec sh -c \
'if grep -wq "dark" "$1"; then sed -i "s/.*dark.*/<!--&-->/" "$1"; fi' _ {} \;发布于 2018-05-08 14:39:22
最好不要使用awk来解析XML文件。相反,请使用XML解析器。
下面是一个使用xmllint的示例
find -name "*.xml" -exec bash -c 'xmllint --xpath "//*/world/text()" $1 >/dev/null 2>&1 && echo $1' _ {} \;xpath表达式查找嵌套在任何其他标记中的标记<world>。
https://stackoverflow.com/questions/50236013
复制相似问题