Всё про Команду Grep в Linux + Практические Примеры
Серверы на базе операционной системы Linux обычно не имеют графического интерфейса по соображениям безопасности. Поэтому каждый, кто собирается самостоятельно управлять сервером должен уметь работать с терминалом Linux.
Очень полезная операция, которую мы можем выполнить с помощью терминала — это поиск внутри текстового файла. Особенно, если мы работаем с файлами конфигурации таких сервисов, как NTP.
В этом коротком руководстве, мы покажем, как использовать команду grep в Linux (Unix). А также подкрепим теоретический материал полезными примерами из повседневного рабочего процесса.
Оглавление
Как использовать команду 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
В выводе, слова, соответствующие поисковому запросу будут выделены следующим образом:
Поиск слово, игнорируя регистр
Для этого необходимо добавить опцию -i.
grep -i запрос файл
Вот и всё!
Количество найденных слов по целевому запросу
Используя эту команду, вы также можете узнать, сколько раз определённое слово используется в текстовом файле. Просто добавьте опцию -c.
grep -c запрос файл
Поиск по нескольким ключевым словам
До сих пор мы искали только одно слово. Однако grep позволяет использовать несколько поисковых запросов в одной команде. Вот как это выглядит:
grep запрос1 файл | grep запрос2 файл
Команда работает очень просто. Сначала мы ищем запрос1, а затем с помощью вертикальной черты и grep продолжаем поиск второго слова — запрос2.
Поиск слова в нескольких файлах
Также вы можете искать слово в нескольких файлах одновременно с помощью одной команды:
grep -l слово_которое_ищете ./*
Файлы, содержащие слово, которое вы искали, будут выведены в терминал.
Итоги
Команда grep может значительно упростить жизнь, если мы работаем с большим количеством текстовых файлов. Вот почему на первый взгляд простая утилита grep считается универсальной командой с множеством полезных функций.
В этом посте вы узнали основные функции команды grep в Linux. Однако мы рекомендуем не останавливаться на достигнутом и ознакомиться с официальной документацией. Удачной разработки вам и успешных проектов!