Использование команды grep в Linux

Утилита grep, с которой мы сегодня познакомимся, - это инструмент Unix, принадлежащий к тому же семейству, что и утилиты egrep и fgrep. Все эти инструменты Unix предназначены для выполнения повторяющихся задач поиска в файлах и тексте. Вы можете искать файлы и их содержимое для извлечения полезной информации, задавая определенные критерии поиска с помощью команды grep.

Говорят, что GREP означает Global Regular Expression Print, но откуда взялась эта команда "grep"? grep в основном происходит от конкретной команды для очень простого и старого текстового редактора Unix под названием ed. Вот как выглядит команда ed:

Цель этой команды очень похожа на то, что мы подразумеваем под поиском с помощью grep. Эта команда собирает все строки в файле, соответствующие определенному текстовому шаблону.

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

Установка grep

Утилита grep поставляется по умолчанию в большинстве систем Linux

Если она не установлена в вашей системе, откройте терминал Ubuntu или Debian, либо через Dash, либо с помощью сочетания клавиш Ctrl+Alt+T. Затем введите следующую команду от имени root, чтобы установить grep через apt-get:

В CentOS

Введите y, когда вам будет предложено выбрать y/n во время процедуры установки. После этого утилита grep будет установлена в вашей системе.

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

Проверка версии команды grep

Использование команды grep с примерами

Команду grep можно лучше всего объяснить, представив несколько сценариев, в которых она может быть использована. Вот несколько примеров:

Поиск файлов

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

Синтаксис:

Примеры:

Эта команда выведет список всех файлов в текущем каталоге с именем файла, содержащим слово "drives".

Поиск файлов с помощью grep

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

С помощью команды grep можно получить предложение из файла, содержащее определенную строку текста.

Синтаксис:

Пример:

Поиск текста в файле с помощью команды grep

Мой пример файла sample.txt содержит предложение со строкой "Lorem", которое вы можете видеть в приведенном выше выводе. В результатах поиска ключевое слово и строка отображаются в цветном виде.

Поиск строки в более чем одном файле

Если вы хотите найти предложения, содержащие вашу текстовую строку, во всех файлах одного типа, к вашим услугам команда grep.

Синтаксис 1:

Синтаксис 2:

Пример1:

Поиск строки в более чем одном файле

Эта команда извлечет все предложения, содержащие строку "Vivamus" из всех файлов с именем, содержащим ключевое слово "sample".

Пример 2:

Поиск строки в более чем одном файле - пример 2

Эта команда извлечет все предложения, содержащие строку "Vivamus", из всех файлов с расширением .txt.

Поиск строки в файле без учета регистра строки

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

Поиск строки с учетом регистра

Давайте попросим grep игнорировать регистр строки поиска и выводить результаты поиска на основе этой строки с помощью опции -i.

Синтаксис:

Пример:

Поиск без учета регистра с помощью команды grep

Эта команда извлечет все предложения, содержащие строку "Vivamus", из всех файлов с расширением .txt. При этом не будет учитываться, в верхнем или нижнем регистре была строка поиска.

Поиск на основе регулярного выражения

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

Синтаксис:

Пример:

Использование регулярных выражений в grepЭта команда выведет предложение, содержащее выражение (начинающееся с моего Vivamus и заканчивающееся на моем pellentesque) из файла, который я указал в команде grep.

Вывод заданного количества строк после/перед строкой поиска

Вы можете использовать команду grep для печати N-ного количества строк до/после строки поиска из файла. Результат поиска также включает строку текста, содержащую строку поиска.

Синтаксис для N количества строк после ключевой строки:

Пример:

Вот как выглядит мой образец текстового файла:

образец текстового файла

А вот как выглядит вывод команды:

grep -A 3 -i "Vivamus" sample.txt

Выводится 3 строки, включая ту, которая содержит искомую строку, из файла, который я указал в команде grep.

Синтаксис для N количества строк перед ключевой строкой:

Вы также можете искать N количество строк "вокруг" текстовой строки. Это означает N количество строк до и N после текстовой строки.

grep -B 3 -i "Vivamus" sample3.txt

Синтаксис для поиска N количества строк вокруг ключевой строки:

grep -C 2 -i "Vivamus" sample3.txt

Заключение

Благодаря простым примерам, описанным в этой статье, вы можете получить представление о команде grep. Затем вы можете использовать ее для поиска отфильтрованных результатов, которые могут включать файлы или содержимое файла. Это сэкономит много времени, которое тратилось на пролистывание всех результатов поиска до того, как вы освоили команду grep.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий