Команда ‘grep‘ позволяет искать по данным, которые поступают на ее вход. Направить данные в эту команду можно с помощью вертикальной черты, например:
$ ls -al | grep bash
Здесь используется две команды, разделенные вертикальной чертой. Команда ls выводит на экран список файлов, и полученный результат передается на вход команде ‘grep‘, которая ищет слово bash в входных данных.
Другой вариант использования команды grep, это поиск данных в файле. Например
$ cat .bashrc | grep alias
Команда слева выводит содержимое файла .bashrc, а правая команда ищет в результате строки, в которых есть слово alias.
Если необходимо просто найти информацию в файле, то можно обойтись одной командой grep без вертикальных линий и дополнительных команд. Формат команды следующий:
grep что где
Допустим, нам необходимо проверить, есть ли в файле /etc/hosts адрес сайта roadit.ru. Это можно сделать следующим образом
$ grep roadit.ru /etc/*
Данная команда осуществит поиск названия сайта «roadit.ru» во всех файлах каталога /etc. Так же можно искать во всех файлах, начинающихся на h:
$ grep roadit.ru /etc/h*
Либо полностью указать имя файла, где необходимо произвести поиск:
$ grep roadit.ru /etc/hosts
Опции.
-w — используется для нахождения соответствий только целым словам.
$ grep -w alias .bashrc
alias l="ls -lah --color"
-i — для игнорирования регистра букв.
$ grep -i text file
Данная команда найдет все строки, содержащие слова text в файле file, не зависимо от регистра букв, то есть Text, TEXT и т.д.
-l — позволяет вывести только имена файлов, содержащих искомые строки, но не сами строки
$ grep -l text *
file
Слово ‘text’ содержится в файле file
Was this helpful?
0 / 1