Главная | Инфотека | Умелые руки | Мелочи и разности

Задача: во всех файлах, соответствующих тому или иному шаблону, произвести замену строки на строку. Самое простое решение:

find . -type f -name "pattern" | xargs perl -pi~ -e "s/SEARCH/REPLACE/ig"

Пояснение: найти все файлы, в данном каталоге и всех подкаталогах, удовлетворяющие шаблону "pattern", после чего произвести замену в соответствии с переданным регулярным выражением (поиск, игнорирующий регистр), причём исходный файл сохранить, приписав к его имени тильду ('~'). Поиск ведётся по умолчанию и во всех подкаталогах.

Пример: заменить во всех .html файлах все вхождения example.com на example.net

find . -type f -name "*.html" | xargs perl -pi~ -e "s/example\.com/example\.net/ig"

Любители sed могут использовать его вместо относительно тяжеловесного perl.

А ещё знатоки Perl могут попробоватьс ходу сказать, что делает вот эта команда:

perl -i~ -p00e0 file.ext

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/36

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя Макс

Спасибо, за идею с xargs

Спасибо, за идею с xargs

Аватар пользователя Константин Бояндин

Не за что.

Не за что.

Аватар пользователя Гость

Полезно. спасибо!

Полезно. спасибо!

Аватар пользователя Константин Бояндин

Пригодилось на практике?

...очень уж лапидарный комментарий.

Аватар пользователя Гость

можно разместить эту новость

можно разместить эту новость на моем
блоге ? обратную ссылку я размещу

Аватар пользователя Константин Бояндин

Да, разумеется

...при наличии ссылки размещайте, не спрашивая.

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

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, связанный с этим e-mail адресом, то он будет использован для отображения аватара.
CAPTCHA
Мы хотим убедиться, что данные вводит человек, а не программа
  ____                                  ____    _  _     _   _ 
| _ \ _ __ ___ ___ __ __ | _ \ | || | | | | |
| | | | | '_ \ / _ \ / _ \ \ \ / / | |_) | | || |_ | | | |
| |_| | | |_) | | __/ | __/ \ V / | __/ |__ _| | |_| |
|____/ | .__/ \___| \___| \_/ |_| |_| \___/
|_|
Введите код, изображенный в стиле ASCII-арт.

Блог в СИНДИКАТе | Проза жизни | ИНФОтека | де Мотиватор | Люди, имена и блоги
Creative Commons License
Если явным образом не выражено иначе, все работы на данном сайте доступны по лицензии
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Перевод текста упомянутой выше лицензии на русский язык
© 2008-2012 Константин Бояндин

Статьи: Обзоры