Открываю новую рубрику «Вебмастеринг», куда буду закидывать различные советы по настройкам серверов и управлению серверов, мелкому программингу и прочим небольшим. Прежде всего, чтобы самому не забыть, как правильно решать небольшие проблемки, которые решаются не слишком часто.
Первый совет: пакетное изменение набора файлов на сервере с помощью неинтерактивного редактора sed.
Если требуется разом внести изменение в некий набор файлов, то необязательно их выкачивать с сервера для изменения и потом закачивать назад – достаточно доступа к консоли сервера. Переходим в директорию с файлами, где вводим следующую команду:
sed -i -e "s/old_text/new_text/g" *.html
Что где, начнем с конца строки:
- Шаблон *.html – какие файлы меняем
- Выражение в кавычках “s/old_text/new_text/g” – регулярное выражение замены текста old_text текстом new_text, может быть довольно сложным. Флаг g указывает на глобальную замену, иначе будет меняться только первое вхождение текста в строке.
- Флаг -e – параметр, что при замене надо выполнить регулярное выражение, рассмотренное выше.
- Флаг -i – меняем исходный файл. Будет создан бекап изменяемого файла добавлением -e, т.е. в результате работы команды появятся файлы file.html-e. Если после флага добавить пустую пару кавычек, то бекапа файлов создаваться не будет. Но лучше перебдеть, а то регулярные выражения – штука непростая и не все сразу делают, как задумано.
Для мастеров регулярных выражений без бекапа:
sed -i "" -e "s/old_text/new_text/g" *.html