Как и в командной строке, процесс подтверждения отсутствует, поэтому вы должны убедиться, что ваш синтаксис задан правильно, прежде чем запускать команду, иначе вам может понадобиться сделать еще один поиск и заменить для восстановления вашей опечатки.
Основной синтаксис команды выглядит следующим образом:
perl -pi -w -e ‘/ THIS / THAT / g;’ /path/to/files*.txt
Для примера с одним словом, если вам нужно заменить все экземпляры «ogre» на «cornbread» в каждом .txt-файле в папке «Documents», вы должны использовать следующую команду:
perl -pi -w -e ‘s / ogre / cornbread / g;’ ~ / Documents / *. TXT
Для примера поиска и замены целой фразы предположим, что мы заменим все предложение «The Chocolate Factory» на «The Wizard of Oz» в группе .txt-файлов, начиная с «Films», хранящихся в документах каталог:
perl -pi -w -e ‘s / The Chocolate Factory / The Wizard of Oz / g;’ ~ / Documents / Фильмы * .txt
Поиск и замена выполняются немедленно. Вы можете дважды проверить изменение, используя cat и grep, чтобы проверить:
cat ~ / Documents / Films124.txt | grep «Волшебник страны Оз»
По общему признанию, это довольно продвинутый вариант, и да, пакетная нахождение и замена через несколько документов можно сделать более удобным для пользователей с помощью графических приложений, таких как TextWrangler и BBEdit, но иногда командная строка работает быстрее для таких быстрых задач, как эта и другие. аналогичны, а также не требуют дополнительных загрузок для использования.
Большие пальцы до Lifehacker за отличный трюк.
Обновление: команда «sed» — это еще один способ быстрого поиска и замены в командной строке. Covering sed в основном является темой для другой статьи, но основной синтаксис использования sed для этой задачи немного проще и, следовательно, легче запомнить:
sed -i ‘/ THIS / THAT / g’ /path/to/files*.txt
Нет правильного или неправильного пути, поэтому, если вы используете perl или sed, это становится вопросом личных предпочтений.