@hellos0dna

Как найти и заменить слова в текстовом файле?

Здравствуйте! Столкнулся с такой проблемой: как полностью заменить слова в текстовом файле, которые одинаково начинаются, но заканчиваются по разному? К примеру нужно полностью заменить несколько слов, которые начинаются на "Повтор". Под замену должны попасть "Повтор", "Повторение", "Повторим", "Повторный".

Как это сделать в Sublime Text или в каком-нибудь другом редакторе? Или может есть команда для Linux?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
В любом потоковом текстовом редакторе умеющим регекспы, от sed до однострочника на "perl -pe"
Ответ написан
@eeiaao
sed -i~ 's/\(повтор\w*\)/42/gI' <имя файла>

Объяснение:
Для решения задачи используем sed. Ключ -i означает непосредственное редактирование файла (in-place). Тильда за -i - суффикс, который прибавится к имени исходного файла, в нём будет бэкап на случай, если что-то пойдёт не так.
Регулярка:
s - модификатор замены
(повтор\w*) - ищем группы, начинающиеся на "повтор", за которыми идут символ/число/нижнее подчеркивание в любом количестве. Обратные слэши нужны для экранирования круглых скобок.
42 - то, на что заменяем искомые группы
g - ищем все вхождения
I - регистронезависимый поиск
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы