Замена текста в файлах Сложность: средняя Приложение: find/Perl
Если надо заменить текст не в одном файле, то есть несколько способов. Для того, чтобы заменить текст «Windows» на «Linux» во всех файлах в текущей директории, название которой начинается с «test», введите в консоли:
perl -i -pe 's/Windows/Linux/;' test* Чтобы провести ту же операцию во всех поддиректориях:
find. -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt
Или вы хотите сделать то же самое для на обычных файлов со множеством переносов строк и странных символов (файл — в другой кодировке):
find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'
Сохраните немало времени и получите статус гуру Линкуса.
OR
grep -lr -e 'было' . | xargs sed -i 's/было/стало/g'
Источник: http://habrahabr.ru/post/55121/ |