Как найти несколько слов в файле в Linux

Как найти несколько слов в файле в Linux

Рубрики:

Linux, Утилиты Linux

Метки:

Grep, linux

Утилита grep — инструмент командной строки Linux, предназначенный для поиска строк в файле, которые соответствуют регулярному выражению или ключевому запросу. Также функционал этой команды позволяет использовать при поиске сразу несколько шаблонов, чтобы находить не одно, а сразу несколько слов в тексте.

В этой статье мы расскажем, как найти несколько слов в файле с помощью grep в Linux.

Содержание:

  1. Синтаксис команды grep
  2. Поиск слов в тексте без опций grep
  3. Поиск слов с использованием опций grep
  4. Использование конвейеров для поиск слов 
  5. Поиск нескольких слов во всех файлах каталога
  6. Выводы

Синтаксис команды grep

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

 

Где:

  • [options] — необязательные опции, которые расширяют функционал команды;
  • [pattern] — поисковый запрос или регулярное выражение;
  • [file(s)] — один или несколько файлов, в которых нужно выполнить поиск.

Поиск слов в тексте без опций grep

С помощью шаблонов можно указать grep одновременно искать несколько слов в тексте. Для этого следует использовать следующее регулярное выражение:

 

Где <word1>, <word2>, <wordN> — слова, которые нужно найти в тексте. Также не забудьте экранировать вертикальную черту (|) с помощью обратного слеша (\).

Допустим, нам нужно найти в текстовом файле text1.txt слова banana и orange. Чтобы это сделать, выполним в терминале:

 

grep regular expression

Читайте также: 12 практических примеров команды grep в Linux.

Предыдущая команда при поиске учитывала регистр слов. Дополнительно примените опцию -i, чтобы указать grep игнорировать регистр.

Поиск слов с использованием опций grep

Если Вам сложно составлять регулярные выражения, можно воспользоваться опцией -e утилиты grep для поиска нескольких слов в файле. Например, чтобы найти в файле text1.txt слова banana и orange, применим следующую команду:

 

То есть, Вам придется неоднократно использовать опцию -e для поиска нескольких слов.

grep using options

Читайте также: 11 расширенных командах grep для классов символов в Linux.

В качестве альтернативы Вы можете выполнить команду grep с опцией -E, в качестве аргумента которой следует передать в одинарных кавычках слова, разделенные символами |. Например:

 

grep using options and regular expressions

Использование конвейеров для поиск слов

Также Вы можете найти строки в тексте, содержащие несколько нужных слов. Например, в нашем файле text1.txt есть две строки. В первой присутствуют слова banana и orange, а во второй — только banana. Допустим, мы хотим, чтобы утилита grep отобразила строку, в которой одновременно используются слова banana и orange. Для этого выполним в терминале:

 

Где:

  • grep 'banana' text1.txt — эта команда ищет строки в файле text1.txt, содержащие слово banana;
  • | — оператор конвейера, который направляет вывод предыдущей команды и на ввод следующей;.
  • grep 'orange' — эта команда ищет строки из результатов вывода предыдущей команды, которые также содержат слово orange.

Читайте также: Как использовать перенаправление ввода / вывода в Linux.

grep words simultaneously

На скриншоте выше видно, что в результате мы получили строку, содержащую одновременно banana и orange.

Поиск нескольких слов во всех файлах каталога

Допустим, в нашем каталоге хранится большое количество файлов, в которых нам предстоит найти несколько слов. Вместо перечисления всех текстовых документов в качестве аргументов для grep, можно указать путь к нужному каталогу. Для этого дополнительно следует использовать опцию -r. Например, нам нужно найти в файлах директории /home/user/1 слова apple, banana и orange, игнорируя регистр букв:

 

multiple options - multiple files

Выводы

Утилита grep — полезный инструмент, который позволяет находить в текстовых документах слова. Мы рассказали Вам, как с помощью опций -e, -E, регулярных выражений и конвейеров выполнять поиск одновременно нескольких слов в файлах.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

Grep, linux

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики