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

Понимание команды grep с практическими примерами для простой фильтрации и отображения содержимого файла

GREP означает «Печать глобального регулярного выражения». Это полезная утилита командной строки, предоставляемая Linux, для поиска текстовой строки, которая соответствует шаблону, предоставленному пользователем.

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

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

В этой статье давайте рассмотрим функционирование grep команда с некоторыми подробными практическими примерами.

Опции доступны с grep команда

Это некоторые из основных параметров, которые вы будете часто использовать с grep команда.

ВариантОписание
Для поиска без учета регистра
Для рекурсивного поиска всех файлов в указанном каталоге и его подкаталогах
-cЧтобы отобразить общее количество появлений строки
-vЧтобы отобразить несовпадающие строки
-wФильтр для этого конкретного слова, используемого отдельно

С помощью grep команда

grep команда обычно используется с конвейером (|) полезность. Его можно реализовать с помощью оболочки оболочки, если вы хотите использовать его с некоторыми другими командами Linux. Несмотря на то что, grep также можно использовать индивидуально без трубы (|) полезность.

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

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

ИНДИЯ - ПРЕКРАСНАЯ СТРАНА МИРНО-ЛЮБИТЕЛЬСКИХ ЛЮДЕЙ. Индия стоит на трех столпах: законодательной, исполнительной и судебной. Индия - прекрасная страна миролюбивых людей. Индия заботится о людях, поскольку это ресурс декартовых координат, важность всех декартовых координат. Ниже приведены две пустые строки. Использование воловьей повозки - обычное дело в деревне для выполнения сельскохозяйственных работ. Это конец демонстрационного файла.

grep используется с трубкой (|)полезность

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

Синтаксис:

[команда] | grep [строка]

Пример:

кот sample.txt | законодательный орган grep

Здесь я использовал Кот команда для отображения некоторых строк из файла «sample.txt». Отображаются только те строки, которые содержат слово «законодательный орган», остальные строки игнорируются.

Вывод:

gaurav @ ubuntu: ~ / workspace $ cat sample.txt | grep законодательный орган Индии стоит на трех столпах: законодательной, исполнительной и судебной. gaurav @ ubuntu: ~ / рабочая область $

grep используется без трубы (|)полезность

grep можно даже использовать напрямую как отдельную команду без использования конвейера ( | ) полезность.

Синтаксис:

grep [string_to_be_searched] [имя файла]

Пример:

grep India sample.txt

Вывод:

Индия - прекрасная страна миролюбивых людей. Индия заботится о людях как о своих ресурсах

Таким образом, я использовал grep непосредственно для фильтрации строк, содержащих строку «Индия», из текстового файла «sample.txt».

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

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

Давайте посмотрим на это на примере.

grep peace sample.txt

В этом случае мы не получим вывода, поскольку в образце файла нет слова «мир». У нас есть слово «Мир» с большой буквы. Слово то же самое, но когда мы используем grep команда без какой-либо опции, она ищет точное совпадение в файле, игнорируя любые изменения в регистре букв.

Чтобы избежать этой двусмысленности, вы можете просто использовать вариант, который буквально сообщает grep команда «Забудьте о случае, когда я ввел строку, и просто ищите все подходящие шаблоны в файле».

Синтаксис:

grep -i [строка] [имя файла]

Пример:

grep -i Peace sample.txt

Вывод:

ИНДИЯ - ПРЕКРАСНАЯ СТРАНА МИРНО-ЛЮБИТЕЛЬСКИХ ЛЮДЕЙ. Индия - прекрасная страна миролюбивых людей.

Все совпадающие строки отображаются независимо от того, в каком случае находится соответствующая строка.

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

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

Синтаксис:

grep -i -r [строка] [путь_файла]

Пример:

grep -i -r tomcat / home / gaurav / рабочая область

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

Вывод:

./context_log.policy:// catalina.policy - Разрешения политики безопасности для Tomcat 7./context_log.policy:// Примечание. Если tomcat-juli.jar находится в $ {catalina.base}, а не в $ {catalina.home }, ./context_log.policy:// grant codeBase "файл: $ {catalina.base} /bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "файл: $ {catalina.home } /bin/tomcat-juli.jar "{./context_log.policy: разрешение java.lang.RuntimePermission" accessClassInPackage.org.apache.tomcat.websocket.server "; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JAR ./catalina.properties:# - Tomcat API JAR ./catalina.properties:# - Tomcat JAR ./catalina.properties:# - Общие файлы, отличные от Tomcat Файлы JAR ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties tomcat.util.buf.StringCache.char.enabled = true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000. /server.xml: pathname = "conf / tomcat-users.xml" /> ./server.xml: 

ПРИМЕЧАНИЕ: При использовании вариант с grep команде нам нужно указать путь к файлу, а не имя файла

Искать целые слова только с grep команда

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

Запутались с этим? Не волнуйтесь, это будет намного легче понять, если вы получите пример.

Пример:

Здесь я хочу найти отдельное слово «тележка» и отобразить все строки, соответствующие этому слову, в файле «sample.txt».

grep -i cart sample.txt

Вывод:

Важность декартовых координат всех декартовых координат. Использование воловьей повозки - обычное дело в деревне для выполнения сельскохозяйственных работ. Телега пропала, когда мальчик оставил ее на свободе.

В выводе вы можете заметить, что слово «декартово» также содержит слово «тележка» и, следовательно, строки, содержащие слово «декартово», также отображаются, даже если мы не хотим, чтобы они отображались.

Вы можете использовать -w вариант с grep команда, чтобы решить эту двусмысленность.

Синтаксис:

grep -i -w [строка] [имя файла]

Пример:

grep -i -w cart sample.txt

Вывод:

Использование воловьей повозки - обычное дело в деревне для выполнения сельскохозяйственных работ. Тележка пропала, когда мальчик оставил ее на свободе. 

Теперь, когда вы использовали -ш вариант с grep вы получите только те строки, в которых слово «тележка» используется целиком.

Обратный поиск с использованием grep команда

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

Синтаксис:

grep -i -v [строка] [имя файла]

Пример:

grep -i -v resource sample.txt

Вывод:

ИНДИЯ - ПРЕКРАСНАЯ СТРАНА МИРНО-ЛЮБИТЕЛЬСКИХ ЛЮДЕЙ. Индия стоит на трех столпах: законодательной, исполнительной и судебной. Индия - прекрасная страна миролюбивых людей. декартовы координаты важность всех декартовых координат. Использование воловьей повозки - обычное дело в деревне для выполнения сельскохозяйственных работ. Это конец демонстрационного файла.

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

Подсчет вхождений совпадающей строки

Выход grep Команда обычно очень длинная, если данные в файле обширны. Чем больше совпадений, тем длиннее выходы grep команда. Linux предоставляет вам возможность отображать количество совпадений.

Синтаксис:

grep -i -c [строка] [имя файла]

Пример:

grep -i -c india sample.txt

Вывод:

gaurav @ ubuntu: ~ / workspace $ grep -i -c india sample.txt 4 gaurav @ ubuntu: ~ / workspace $

Здесь вывод представляет собой число, которое представляет собой количество появлений слова «Индия» в файле sample.txt.

ПРИМЕЧАНИЕ: Я использовал вариант в каждом примере, чтобы быть в безопасности с проблемой чувствительности к регистру. Если вы точно знаете регистр искомого слова, то можете спокойно опуститьвариант.

Вывод

Мы узнали об основных способах использования grep в системах Linux в этом руководстве. Мы также научились отображать различный контент, который наилучшим образом соответствует нашим требованиям, и не перегружать терминал множеством очередей. grep Команда, безусловно, сэкономит время при сканировании больших наборов данных.

Категория: Linux