grep

Команда grep в Linux

Команда grep в Linux
Grep - один из самых удобных инструментов, которые вы можете иметь в своем распоряжении. Эта утилита командной строки выполняет поиск в наборах данных в виде обычного текста. Grep на самом деле является аббревиатурой от «граммлобально обыскать ртипичный еxpression и принт ». Grep начал свой путь как часть семейства UNIX. Со временем он стал доступен для всех популярных платформ, таких как Linux, Mac, BSD и даже Windows!

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

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

Проверка существования

Если вы используете какой-либо дистрибутив Linux, значит, у вас уже установлен grep. Выполните следующую команду в терминале.

grep --version

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

Основы

Основное использование grep следует следующей структуре.

grep

Или, для облегчения понимания, используйте этот.

grep

В этом случае grep выполнит поиск в файле и распечатает все строки, содержащие шаблон (условие поиска).

grep python ~ / Рабочий стол / PackageList.текст

Grep выполнил поиск в файле «PackageList.txt », который я сгенерировал ранее, и распечатал все строки, содержащие« python ».

Эту же операцию можно выполнить другим способом. Посмотрите следующий пример.

кошка ~ / Рабочий стол / PackageList.txt | grep python

Здесь с помощью команды «cat» я отправил содержимое файла «PackageList.txt »в grep. Используя вывод cat, grep выполнил поиск и распечатал строки, содержащие поисковый запрос.

А теперь самое интересное. Вы можете буквально так сложить несколько команд grep.

кошка ~ / Рабочий стол / PackageList.txt | grep - | grep p | grep python

Первый grep фильтрует до строк с дефисом, второй фильтрует до строк с p, а последний grep фильтрует до строк с python. Имеет смысл?

Чувствительность к регистру

При поиске важным вопросом является чувствительность к регистру. По умолчанию grep чувствителен к регистру.

Например, поиск «Python» не даст никаких результатов.

кошка ~ / Рабочий стол / PackageList.txt | grep Python

Чтобы сделать регистр grep «нечувствительным», добавьте следующий параметр.

кошка ~ / Рабочий стол / PackageList.txt | grep -i Python

Поиск файлов

Допустим, у вас есть каталог с множеством текстовых файлов. Ваша цель - определить файлы, содержащие или не содержащие шаблон (поисковый запрос).

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

Для вывода списка файлов, содержащих совпадение, используйте флаг «-l».

grep -l / поиск / каталог / *

Как следует из результатов, термин «питон» присутствует во всех 3 файлах в каталоге «Рабочий стол».

Для вывода списка файлов без совпадений используйте флаг «-L».

grep -L / поиск / каталог / *

"Не совпадает.txt »- единственный файл, в котором отсутствует термин« python ».

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

По умолчанию grep печатает только строки с совпадающим шаблоном, справа? Пришло время повернуть вспять процесс. На этот раз мы будем печатать только строки БЕЗ соответствующего шаблона.

Просто передайте команду grep с параметром -v.

кошка ~ / Рабочий стол / PackageList.txt | grep -i -v Python

Печатные строки до / после матча

По умолчанию grep будет печатать только строку, соответствующую шаблону поиска. Используя эту технику, вы также можете указать grep печатать строки до / после совпадения.

Для печати строк перед матчем используйте следующую структуру.

grep -B

Здесь 5 - это строка числа, которую grep напечатает ДО соответствующей строки.

Для печати строк после матча используйте следующий.

grep -A

Как насчет печати до и после совпадающей строки? В этом случае используйте флаг «-C».

grep -C

Номер строки

Когда grep показывает вывод, он не упоминает номер строки. Для соответствующего номера (ов) строки используйте флаг «-n».

grep -n

Одно слово

Если используется флаг «-w», grep будет рассматривать шаблон как целое слово.

grep -w

Ограничение поиска grep

Grep позволяет указать количество строк для поиска в файле. Этот метод полезен, если вы имеете дело с большим файлом (например, системным журналом). Используйте флаг «-m».

grep -m

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

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

grep -R

Или же,

grep -r

Я часто использую эту рекурсивную функцию вместе с флагом «-l».

Тихий режим

Grep можно запускать в «тихом» режиме. При работе в «тихом» режиме grep не выводит никаких данных на терминал. Вместо этого он вернет 0 (по крайней мере, совпадение найдено) или 1 (совпадение не найдено).

grep -q
эхо $?

Регулярное выражение

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

Например, вы можете использовать скобки для одновременного поиска слов «слишком» и «два».

кошка ~ / Рабочий стол / gpl-3.0.txt | grep t [wo] o

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

grep ^ GNU ~ / Рабочий стол / gpl-3.0.текст

Что касается совпадения концовки, используйте этот.

grep you $ ~ / Рабочий стол / gpl-3.0.текст

Если вы хотите использовать регулярное выражение Perl, используйте флаг «-P». Он будет рассматривать шаблон как регулярное выражение Perl.

grep -P

Последние мысли

Grep предлагает массу способов настроить функцию поиска. Доступность регулярного выражения открывает новые горизонты для потенциального использования grep. Замечательно то, что вы можете использовать как общее, так и регулярное выражение Perl; в зависимости от того, с чем вы чувствуете себя комфортно.

Для наиболее подробного объяснения всегда обращайтесь к странице руководства.

человек grep

Ваше здоровье!

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...