Как я могу обновить содержимое файла, заменив строки с помощью команды grep и find - PullRequest
0 голосов
/ 06 ноября 2018

Я нахожу 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>

... и т. Д.

Есть ли способ, которым я могу заменить все вхождения СИСТЕМЫ на пустое.

результат, который я ищу:

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

1 Ответ

0 голосов
/ 06 ноября 2018

Я бы использовал perl pie

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