Утилита grep — инструмент командной строки Linux, предназначенный для поиска строк в файле, которые соответствуют регулярному выражению или ключевому запросу. Также функционал этой команды позволяет использовать при поиске сразу несколько шаблонов, чтобы находить не одно, а сразу несколько слов в тексте.
В этой статье мы расскажем, как найти несколько слов в файле с помощью grep в Linux.
Содержание:
- Синтаксис команды grep
- Поиск слов в тексте без опций grep
- Поиск слов с использованием опций grep
- Использование конвейеров для поиск слов
- Поиск нескольких слов во всех файлах каталога
- Выводы
Синтаксис команды grep
Базовый синтаксис команды grep выглядит следующим образом:
Где:
[options]— необязательные опции, которые расширяют функционал команды;[pattern]— поисковый запрос или регулярное выражение;[file(s)]— один или несколько файлов, в которых нужно выполнить поиск.
Поиск слов в тексте без опций grep
С помощью шаблонов можно указать grep одновременно искать несколько слов в тексте. Для этого следует использовать следующее регулярное выражение:
Где <word1>, <word2>, <wordN> — слова, которые нужно найти в тексте. Также не забудьте экранировать вертикальную черту (|) с помощью обратного слеша (\).
Допустим, нам нужно найти в текстовом файле text1.txt слова banana и orange. Чтобы это сделать, выполним в терминале:
Читайте также: 12 практических примеров команды grep в Linux.
Предыдущая команда при поиске учитывала регистр слов. Дополнительно примените опцию -i, чтобы указать grep игнорировать регистр.
Поиск слов с использованием опций grep
Если Вам сложно составлять регулярные выражения, можно воспользоваться опцией -e утилиты grep для поиска нескольких слов в файле. Например, чтобы найти в файле text1.txt слова banana и orange, применим следующую команду:
То есть, Вам придется неоднократно использовать опцию -e для поиска нескольких слов.
Читайте также: 11 расширенных командах grep для классов символов в Linux.
В качестве альтернативы Вы можете выполнить команду grep с опцией -E, в качестве аргумента которой следует передать в одинарных кавычках слова, разделенные символами |. Например:
Использование конвейеров для поиск слов
Также Вы можете найти строки в тексте, содержащие несколько нужных слов. Например, в нашем файле text1.txt есть две строки. В первой присутствуют слова banana и orange, а во второй — только banana. Допустим, мы хотим, чтобы утилита grep отобразила строку, в которой одновременно используются слова banana и orange. Для этого выполним в терминале:
Где:
grep 'banana' text1.txt— эта команда ищет строки в файлеtext1.txt, содержащие словоbanana;|— оператор конвейера, который направляет вывод предыдущей команды и на ввод следующей;.grep 'orange'— эта команда ищет строки из результатов вывода предыдущей команды, которые также содержат словоorange.
Читайте также: Как использовать перенаправление ввода / вывода в Linux.
На скриншоте выше видно, что в результате мы получили строку, содержащую одновременно banana и orange.
Поиск нескольких слов во всех файлах каталога
Допустим, в нашем каталоге хранится большое количество файлов, в которых нам предстоит найти несколько слов. Вместо перечисления всех текстовых документов в качестве аргументов для grep, можно указать путь к нужному каталогу. Для этого дополнительно следует использовать опцию -r. Например, нам нужно найти в файлах директории /home/user/1 слова apple, banana и orange, игнорируя регистр букв:
Выводы
Утилита grep — полезный инструмент, который позволяет находить в текстовых документах слова. Мы рассказали Вам, как с помощью опций -e, -E, регулярных выражений и конвейеров выполнять поиск одновременно нескольких слов в файлах.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.




























