Обратите внимание, что вся информация на этом портале переведена с других языков, поэтому некоторые фразы могут быть неточными. Надеемся на ваше понимание и желаем успешной работы с сайтом! С уважением, создатели сайта. Наша почта: info@rubookmac.com

Найти и заменить текст в нескольких документах из командной строки

Как и в командной строке, процесс подтверждения отсутствует, поэтому вы должны убедиться, что ваш синтаксис задан правильно, прежде чем запускать команду, иначе вам может понадобиться сделать еще один поиск и заменить для восстановления вашей опечатки.

Основной синтаксис команды выглядит следующим образом:

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, это становится вопросом личных предпочтений.

Понравилась статья? Поделиться с друзьями: