Замена текста в больших файлах через SSH

Опубликовано в Веб-разработка

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

Столкнулся с описанной выше проблемой, нашел несколько вариантов решения, делюсь ими.

Массовая замена текста через SSH в нескольких файлах

find /folder/ -name '*.html' -exec sed -i 's/старый_текст/новый_текст/g' '{}' \;

Разбираемся:

  • find ищет файлы в обозначенной папке /folder/, имена -name которых совпадают с шаблоном *.html;
  • -exec для каждого файла из списка найденных и выполняет команду sed, которая осуществляет замену текста.
  • если вы хотите, чтобы, допустим, после замены текста у вас осталась резервная копия исходного файла, тогда вместе c -i можно приписать "_old" или "_bak", чтобы получилось что-то наподобие -i_bak, тогда вместе с заменяемым файлом создастся еще один - "имя_файла.расширение_old".

Tags: SSH