Пошаговая инструкция

Серверы на базе операционной системы Linux обычно не имеют графического интерфейса по соображениям безопасности. В этом случае очень важно знать и уметь управлять терминалом Linux.
Очень полезная операция, которую мы можем выполнить с помощью терминала, — это поиск внутри текстового файла. Прежде всего, если мы работаем с файлами конфигурации таких сервисов, как NTP.
В этом посте мы научим вас использовать команду grep в Linux (Unix) и подкрепим полученные знания полезным примером для повседневного рабочего процесса.

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

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

ssh your-user@your-server

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

grep [options] pattern [FILE]
  • grep — инструкция команды
  • [options] — модификаторы к команде
  • шаблон — поисковый запрос, который нужно найти
  • [ФАЙЛ] — файл, в котором выполняется поиск

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

grep --help

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

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

Некоторые полезные примеры grep

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

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

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

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

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

grep command grep

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

Найдите слово, игнорируя регистр букв

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

grep -i query file

Вот и все, вот и все!

Количество слов целевого запроса

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

grep -c query file

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

До сих пор мы указывали примеры, в которых мы ищем одно слово. Grep поддерживает несколько запросов в одной команде. Команда будет выглядеть так:

grep query1 file | grep query2 file

Команда работает очень просто. Сначала мы ищем Query1, а затем передаем по конвейеру второй команде grep для второго слова — Query2 .

Поиск слова в наборе файлов

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

grep -l word_to_search ./*

В терминале файлы, содержащие слово, которое вы искали, будут отображаться на выходе.