Как заменить текст во всех файлах, содержащих указанный c текст на Linux? - PullRequest
0 голосов
/ 27 апреля 2020

С помощью этой команды я могу найти все файлы в каталоге, содержащем указанный c текст:

grep -rnw '/path/mypath' -e 'mypattern'

Теперь я хотел бы заменить все вхождения «mypattern» в « mypattern2 'во всех соответствующих файлах.

Есть ли в Linux команда, которая в сочетании с этим также заменяет текст во всех файлах?

1 Ответ

1 голос
/ 27 апреля 2020

Да, в Linux есть команда, которая заменяет текст во всех файлах. Попробуйте:

find "/path/mypath" -type f -exec sed -i "s/mypattern/mypattern2/g" {} \;

, как предлагает U880D. Нет необходимости сначала извлекать соответствующие файлы с помощью grep, sed может выполнять поиск и замену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...