我在特定子目录下找到 XML 文件,其中包含“负责”一词。搜索工作正常,如下所示。
find . -name '*.xml' -exec grep -H 'responsible' {} \;
./dir1/d1.xml<responsible><></responsible>
./dir2/d2.xml<responsible><SYSTEM></responsible>
./dir3/d3.xml<responsible><SYSTEM></responsible>
...等等。
有没有一种方法可以将所有出现的 SYSTEM 替换为空白。
我正在寻找的结果是:
./dir1/d1.xml<responsible><></responsible>
./dir2/d2.xml<responsible><></responsible>
./dir3/d3.xml<responsible><></responsible>
最佳答案
我会用 perl pie
perl -p -i -e 's/<responsible><SYSTEM><\/responsible>/<responsible><><\/responsible>/' `find ./ -name *.xml`
关于linux - 我如何通过使用 grep 和 find 命令替换字符串来更新文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53163654/