我正在特定的子目录下找到XML文件,其中包含“responsible”单词。搜索工作正常,如下所示。

find . -name '*.xml' -exec grep -H 'responsible' {} \;

./dir1/d1.xml<responsible><></responsible>
./dir2/d2.xml<responsible><SYSTEM></responsible>
./dir3/d3.xml<responsible><SYSTEM></responsible>

…等等。
有没有办法把所有出现的系统替换成空白的。
我正在寻找的结果是:
./dir1/d1.xml<responsible><></responsible>
./dir2/d2.xml<responsible><></responsible>
./dir3/d3.xml<responsible><></responsible>

最佳答案

我会用perl派

perl -p -i -e 's/<responsible><SYSTEM><\/responsible>/<responsible><><\/responsible>/'   `find ./ -name *.xml`

关于linux - 我如何通过使用grep和find命令替换字符串来更新文件的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53163654/

10-09 00:55