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

Иногда пользователи сталкиваются с необходимостью осуществления поиска определенной информации внутри каких-либо файлов. Часто конфигурационные документы или другие объемные данные вмещают в себе большое количество строк, поэтому вручную отыскать нужные данные не получается. Тогда на помощь приходит одна из встроенных команд в операционные системы на Linux, которая позволит выполнить нахождение строк буквально за считанные секунды.

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

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

Подготовительные работы

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

  1. Запустите файловый менеджер и переместитесь в нужную папку.
  2. Нажмите правой кнопкой мыши на требуемом файле и выберите пункт .
  3. Во вкладке ознакомьтесь со строкой .
  4. Теперь запустите удобным методом, например, через меню или зажатием комбинации клавиш .
  5. Здесь перейдите к директории через команду cd /home/user/folder, где — имя пользователя, а — название папки.

Задействуйте команду cat + название файла, если хотите просмотреть полное содержимое. Детальные инструкции по работе с этой командой ищите в другой нашей статье по ссылке ниже.

Подробнее: Примеры команды cat в Linux

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

Стандартный поиск по содержимому

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

  1. В командной строке введите grep word testfile, где — искомая информация, а — название файла. Когда производите поиск, находясь за пределами папки, укажите полный путь по примеру /home/user/folder/filename. После ввода команды нажмите на клавишу .
  2. Осталось только ознакомиться с доступными вариантами. На экране отобразятся полные строки, а ключевые значения будут выделены красным цветом.
  3. Важно учитывать и регистр букв, поскольку кодировка Linux не оптимизирована для поиска без учета больших или маленьких символов. Если вы хотите обойти определение регистра, впишите grep -i «word» testfile.
  4. Как видите, на следующем скриншоте результат изменился и добавилась еще одна новая строка.

Поиск с захватом строк

Иногда пользователям необходимо найти не только точное совпадение по строкам, но и узнать информацию, которая идет после них, например, при отчете об определенной ошибке. Тогда правильным решением будет применить атрибуты. Впишите в консоль grep -A3 «word» testfile, чтобы включить в результат и три следующие строки после совпадения. Вы можете написать -A4, тогда будут захвачены четыре строки, ограничений никаких не имеется.

Если вместо -A вы примените аргумент -B + количество строк, в результате отобразятся данные, находящиеся до точки вхождения.

Аргумент -С, в свою очередь, захватывает строки вокруг ключевого слова.

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

grep -B3 «word» testfile
grep -C3 «word» testfile

Поиск ключевых слов в начале и в конце строк

Надобность определения ключевого слова, которое стоит в начале или в конце строки, чаще всего возникает во время работы с конфигурационными файлами, где каждая линия отвечает за один параметр. Для того чтобы увидеть точное вхождение в начале, необходимо прописать grep «^word» testfile. Знак как раз и отвечает за применение этой опции.

Поиск содержимого в конце строк происходит примерно по такому же принципу, только в кавычках следует добавить знак , и команда обретет такой вид: grep «word$» testfile.

Поиск чисел

При поиске нужных значений пользователь не всегда имеет информацию касательно точного слова, присутствующего в строке. Тогда процедуру поиска можно производить через числа, что иногда значительно упрощает задачу. Надо лишь задействовать рассматриваемую команду в виде grep «[0-7]» testfile, где — диапазон значений, а — название файла для сканирования.

Анализ всех файлов директории

Сканирование всех объектов, находящихся в одной папке, называется рекурсивным. Юзеру требуется применить только один аргумент, который проведен анализ всех файлов папки и выведет на экран подходящие строки и их расположение. Понадобится ввести grep -r «word» /home/user/folder, где — путь к директории для сканирования.

Голубым цветом будет отображаться место хранения файла, а если хотите получить строки без этой информации, присвойте еще один аргумент, чтобы команда получилась такой grep -h -r «word» + путь к папке.

Точный поиск по словам

В начале статьи мы уже говорили об обычном поиске по словам. Однако при таком методе в результатах будут высвечиваться дополнительные комбинации. Например, вы находите слово , но команда отобразит еще и User, User и другие совпадения, если такие имеются. Чтобы избежать такого результата, присвойте аргумент -w (grep -w «word» + имя файла или его расположение).

Выполняется эта опция и при надобности поиска сразу нескольких точных ключевых слов. В таком случае введите egrep -w ‘word1|word2’ testifile. Обратите внимание, что в этом случае к добавляется буква , а кавычки ставятся одинарные.

Поиск строк без определенного слова

Рассматриваемая утилита умеет не только находить слова в файлах, но и выводить строки, в которых отсутствует заданное пользователем значение. Тогда перед введением ключевого значения и файла добавляется -v. Благодаря ей при активации команды вы увидите только соответствующие данные.

Синтаксис собрал в себе еще несколько аргументов, о которых можно вкратце рассказать:

  • -I — показывать только названия файлов, подходящих под критерий поиска;
  • -s — отключить уведомления о найденных ошибках;
  • -n — отображать номер строки в файле;
  • -b — показывать номер блока перед строчкой.

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

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

Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 13047 полезных инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам. Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Источник: starhit

Дачник
Добавить комментарий