Использование VI заменить строку в нескольких файлах

Иногда вы можете заменить вхождения строки на несколько файлов.

Существует простой способ сделать это с помощью редактора VI.

Этот пример иллюстрирует силу VI:

Предположим, у вас 100. HTML-файлов, и вы хотите заменить вхождения строки '2007 'с '2008'.

Таким образом, выполнить следующее в вашей строке:

VI *. HTML

Это позволит открыть все файлы, оканчивающиеся на ". HTML 'в текущем рабочем каталоге. Затем выполните следующую команду:

: Argdo% s/2007/2008/g | WQ

Вот и все! Эта команда цикл по каждому файлу, заменив (%) словом 2007 года слово 2008 в глобальном масштабе (г), то это спасет каждого файла (ш) и выезд из нее (д).

Обратите внимание, что строка для поиска и строку для замены может быть заменен с регулярными выражениями. Например, вставки (^) относится к началу строки, знак доллара ($) относится к своему концу, и т.д. Так что, если мы должны были заменить строку, начинающуюся с 'образец' и заканчивая 'тест', один могли бы использовать:

: Argdo% с / ^ образца .* тест Ф / г | туалет

где .* соответствует чему-либо в двух строк.

Отметим также, что вы можете сделать поиск и замена действия без уважения к случаю (например, поиск "слово" будет соответствовать "слово"). Если на то пошло, то просто замените '/ д' с '/ ги'

4 Комментария

микрофон 23 августа 2008 в 12:24 вечера

это каретки, а не морковь!

админ 29 августа 2008 в 3:43 утра

Должно быть, думал о еде при его наборе :)
Ура

Йенс 16 июля 2010 в 8:35 вечера

Спасибо за эту подсказку, вы спасли меня куча работы с этим.

Чем вам спасибо 27 сентября 2010 в 1:49 вечера

Огромное спасибо, это помогло мне тоже.

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

: / Argdo% с search_string / replace_string / дс | WQ

с дополнительными 'с' для 'Подтверждение'

Еще раз спасибо :)

Оставить комментарий

Ваш комментарий