grep

Команда Grep в Linux

Команда Grep в Linux
Команда Grep (печать глобального регулярного выражения) - самая мощная и часто используемая утилита командной строки Linux. Используя Grep, вы можете искать полезную информацию, задавая критерии поиска. Он ищет определенный шаблон выражения в указанном файле. Когда он находит совпадение, он печатает все строки файла, соответствующие указанному шаблону. Это удобно, когда вам нужно фильтровать большие файлы журналов.

В этой статье мы объясним использование утилиты grep на различных примерах. Мы будем использовать Debian 10 для объяснения команд и методов, упомянутых в этой статье.

Установка Grep

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

$ sudo apt-get install grep

Использование Grep

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

$ grep [параметры] ШАБЛОН [ФАЙЛ…]

Искать файлы

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

$ ls -l | grep -i «строка

Например, для поиска имени файла, содержащего строку «контрольная работа«, Команда будет такой:

$ ls -l | grep -i test

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

Искать строку в файле

Для поиска строки в определенном файле вы можете использовать следующий синтаксис команды:

$ grep «строка» имя файла

Например, для поиска строки «контрольная работа»В файле с именем testfile1, мы использовали следующую команду:

$ grep «сотрудник» testfile1

Приведенный выше вывод вернул предложение из testfile1 который содержит строку «работник”.

Искать строку в нескольких файлах

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

$ grep «строка» имя_файла1 имя_файла2

Например, для поиска строки «employee» в наших двух файлах testfile1 и testfile2 мы использовали следующую команду:

$ grep «сотрудник» testfile1 testfile2

Приведенная выше команда перечислит все строки, содержащие строку «employee» из файлов testfile1 и testfile2.

Вы также можете использовать подстановочный знак, если все имена файлов начинаются с одного и того же текста.

$ grep «строка» имя файла *

Например, если мы возьмем приведенный выше пример, в котором наши имена файлов были testfile1 и testfile2 , команда будет такой:

Тестовый файл $ grep «сотрудник» *

Искать строку в файле, игнорируя регистр строки

Чаще всего вы сталкивались с тем, что когда вы ищете что-то с помощью grep, но не получаете результат. Это происходит из-за несоответствия регистра при поиске строки. Как и в нашем примере, если мы по ошибке используем "Работник" вместо "работник», Он вернет nil, поскольку наш файл содержит строку«работник”Строчными буквами.

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

$ grep -i «строка» имя файла

Используя флаг -i, команда выполнит поиск без учета регистра и вернет все строки, содержащие строку «работник»В нем без учета букв в верхнем или нижнем регистре.

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

При правильном использовании регулярное выражение - очень эффективная функция в grep. С помощью команды Grep вы можете определить регулярное выражение с начальным и конечным ключевыми словами. При этом вам не нужно будет вводить всю строку с помощью команды grep. Для этой цели можно использовать следующий синтаксис.

$ grep «начальное ключевое слово.* endKeyword »имя файла

Например, для поиска в файле с именем testfile1 строки, которая начинается со строки «this» и заканчивается строкой «data», мы использовали следующую команду:

$ grep «это.* данные »testfile1

Он напечатает всю строку из testfile1 содержащее выражение (начальное ключевое слово «this» и конечное ключевое слово «данные»).

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

Вы также можете отобразить определенное количество строк в файле до / после совпадения строки вместе с самой совпадающей строкой. Для этого можно использовать следующий синтаксис:

$ grep -A «Строка» имя файла

Он отобразит количество строк N после того, как строка будет сопоставлена ​​в указанном файле, включая сопоставленную строку.

Например, это наш образец файла с именем testfile2.

Следующая команда выведет совпадающую строку, содержащую строку «работник”, А также две строчки после него.

$ grep -A 2 -i «сотрудник» testfile2

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

$ grep -B «Строка» имя файла

Чтобы отобразить N строк вокруг строки в конкретном файле, используйте следующий синтаксис:

$ grep -C «Строка» имя файла

Выделение поиска

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

Для этого можно использовать следующий синтаксис:

$ grep «строка» filename --color

Подсчет количества совпадений

Если вы хотите подсчитать, сколько раз конкретное слово встречается в определенном файле, вы можете использовать команду grep с параметром -c. Он возвращает только количество совпадений, а не сами совпадения. Для этого можно использовать следующий синтаксис:

$ grep -c «строка» имя файла

Это наш пример файла выглядит так:

Ниже приведен пример команды, которая вернула, сколько раз слово файл появился в файле с именем testfile3.

Перевернутый поиск

Иногда вы хотите выполнить обратный поиск, который отображает все строки, кроме тех, которые совпадают с вводом. Для этого просто используйте флаг -v, за которым следует grep:

$ grep -v «строка» имя файла

Например, чтобы отобразить все строки в файле testfile3 которые не содержат слова «аккаунт», мы использовали следующую команду:

$ grep -v «аккаунт» testfile3

Использование Grep с другими командами

Grep также можно использовать для фильтрации требуемого результата из вывода различных команд. Например, из «список установленных apt » вывод команды, вы хотите найти только пакеты, которые были установлены автоматически, вы можете отфильтровать результат с помощью grep следующим образом:

$ apt - список установленных | grep автоматический

Аналогичным образом lscpu предоставляет подробную информацию о процессоре. Если вас просто интересует информация об архитектуре ЦП, вы можете отфильтровать ее, используя следующую команду:

$ lscpu | grep Архитектура

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

Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...