Как заменить текст в файлах командой find и replace?

find . -name "*.txt" | xargs perl -pi -e 's/old/new/g'


Команда find . -name «*.txt» | xargs perl -pi -e ‘s/old/new/g’ выполняет поиск файлов с расширением .txt в текущей директории и ее поддиректориях, а затем заменяет все вхождения строки «old» на «new» в найденных файлах.

Эта команда полезна, когда требуется автоматически заменить определенные текстовые фрагменты в большом количестве файлов.

Альтернативой этой команде может быть использование команды sed с похожим синтаксисом, например: find . -name «*.txt» -exec sed -i ‘s/old/new/g’ {} \;

Аргументы, передаваемые команде, включают:
— «.» — текущая директория;
— «-name «*.txt»» — поиск файлов с расширением .txt;
— «| xargs» — передача результатов поиска другой команде;
— «perl -pi -e ‘s/old/new/g'» — использование Perl для замены текста.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *