Как использовать команду Grep?

Принадлежащая к семейству Unix команда grep является одним из самых универсальных и полезных инструментов. Эта утилита выполняет поиск в текстовом файле за заданным нами паттерном. Другими словами, с помощью grep вы можете найти необходимое вам слово или значение. А содержащие ваш запрос строки или строка будут выведены в терминал.

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

Сначала давайте подключимся к VPS с помощью SSH. Вот статья, в которой показано, как это сделать с помощью PuTTY SSH.

ssh vash-user@vash-server

Если на вашем компьютере вы используете Linux, просто откройте терминал.

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

grep [опции] значение [ФАЙЛ]
  • grep — команда
  • [опции] — модификаторы команды
  • значение — поисковый запрос
  • [ФАЙЛ] — файл, в котором вы выполняете поиск

Вы можете просмотреть документацию и пояснения к различным опциям команды, введя в командной строке:

grep –help

Как видите, команда предлагает нам множество опций. Однако наиболее важными и часто используемыми являются параметры:

  • -i — поиск не будет чувствителен к регистру. То есть, если вы хотите найти слово «автомобиль», написанные как «АВТОМОБИЛЬ» слова тоже будут найдены.
  • -c — покажет только количество строк, содержащих поисковый запрос
  • -r — включает рекурсивный поиск в текущем каталоге
  • -n — выведет номера строк, содержащих поисковый запрос
  • -v — обратный поиск, выводит только строки, в которых нет указанного поискового запроса

Полезные примеры Grep

Давайте разберём несколько практических примеров команды grep.

Поиск слова в текстовом файле

Чтобы найти слово в текстовом файле, просто введите команду:

grep запрос файл
  • запрос — слово, которое вы ищете
  • файл — файл, в котором вы ищете слово

В нашем случае мы ищем слово command в файле с именем grep:

grep command grep

В выводе, слова, соответствующие поисковому запросу будут выделены следующим образом:

Найденные с помощью команды Grep слова, віделенніе краснім в терминале Linux

Поиск слово, игнорируя регистр

Для этого необходимо добавить опцию -i.

grep -i запрос файл

Вот и всё!

Количество найденных слов по целевому запросу

Используя эту команду, вы также можете узнать, сколько раз определённое слово используется в текстовом файле. Просто добавьте опцию -c.

grep -c запрос файл

Поиск по нескольким ключевым словам

До сих пор мы искали только одно слово. Однако grep позволяет использовать несколько поисковых запросов в одной команде. Вот как это выглядит:

grep запрос1 файл | grep запрос2 файл

Команда работает очень просто. Сначала мы ищем запрос1, а затем с помощью вертикальной черты и grep продолжаем поиск  второго слова — запрос2.

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

Также вы можете искать слово в нескольких файлах одновременно с помощью одной команды:

grep -l слово_которое_ищете ./*

Файлы, содержащие слово, которое вы искали, будут выведены в терминал.