@Cooler2

Как выполнить набор регулярных выражений по множеству файлов?

Есть набор регулярных выражений (~100 штук) для выполнения замены в тексте. Нужно выполнить эти замены во всех файлах, соответствующих заданным маскам. Как проще всего это сделать?

Это задача миграции проектов: API поменялся и нужно заменить старые вызовы на новые во всех файлах проекта. Желательно так, чтобы и любой другой юзер мог этим воспользоваться.
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ответы на вопрос 1
romesses
@romesses
Backend инженер
Текстовый редактор не указан и у них разные возможности.
Поэтому (для меня) проще всего заменить связкой инструментов GNU: find (поиск файлов по маске и запуск процессов по ним) + sed (собственно, заменяет текст файла по регулярке)
Перед выполнением протестировать на единичных файлах и сохранить исходную версию файлов.
find /path/to/project -type f -name "*.php" -exec sed -i 's/регулярка/новыйтекст/g' {} \;

Но если есть редактор кода, который делает то же самое, то с этим тоже нет проблем.

Предвосхищая вопрос про наличие утилит GNU в Windows, даю ссылку:
https://en.wikipedia.org/wiki/GnuWin32
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы