Недавно столкнулся с проблемой замены текста в дампе базы данных размером в 4Gb.. Перепробывал порядка 20 редакторов и утилит которые обещали это сделать — результат «нехватка памяти» и просто зависание (на компьютере установлено 2Gb RAM).
Решением было — использование perl на сервере с Unix где база данных и дампилась!
- замена внутри одного файла:
perl -w -i -p -e "s/search_text/replace_text/g" filename
- замена сразу в нескольких файлах:
perl -w -i -p -e "s/search_text/replace_text/g" *.php
- рекурсивная замена
Если нужно пройтись по всему каталогу и подкаталогам и заменить во всех встречающихся на пути php-файлах строку «Perl is great» на «Perl is fucking awesome». Не проблема, командуем в терминал:
find /www_root -name "*.php"|xargs \
perl -w -i -p -e "s/Perl is great/Perl is fucking awesome/g"
Источник: Colobridge
Опыт