grep

Не учитывать регистр во время поиска. Тогда комбинации ABC, abc и Abc с точки зрения программы будут одинаковы:

grep -i "user" /etc/passwd

ВЫВЕСТИ НЕСКОЛЬКО СТРОК

Выведет строку с вхождением и 4 строчки после неё:

grep -A4 "192.168.1.167" /var/log/maillog.log

Выведет строку с вхождением и 4 строчки до неё:

grep -B4 "192.168.1.167" /var/log/maillog.log

Выведет строку с вхождением и по 2 строчки до неё и после:

grep -C2 "192.168.1.167" /var/log/maillog.log

РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ В GREP

Поиск вхождения в начале строки с помощью спецсимвола “^”, например, выведем все сообщения за ноябрь:

grep "^Nov 10" messages.1

Поиск в конце строки – спецсимвол “$”:

grep "terminating.$" messages

Найдём все строки, которые содержат цифры:

grep "[0-9]" /var/log/Xorg.0.log

РЕКУРСИВНОЕ ИСПОЛЬЗОВАНИЕ GREP

Поиск во всех подкаталогах /etc/apache2 на предмет вхождения строки mydomain.com:

grep -r "mydomain.com" /etc/apache2/

Вывод имени файла легко отключить с помощью опции -h:

grep -h -r "zendsite" /etc/apache2/

ПОИСК СЛОВ В GREP

Когда вы ищете строку abc, grep будет выводить также kbabc, abc123, aafrabc32 и тому подобные комбинации. Вы можете заставить утилиту искать по содержимому файлов в Linux только те строки, которые выключают искомые слова с помощью опции -w:

grep -w "abc" имя_файла

ПОИСК ДВУХ СЛОВ

Можно искать по содержимому файла не одно слово, а два сразу:

egrep -w 'word1|word2' /path/to/file

КОЛИЧЕСТВО ВХОЖДЕНИЙ СТРОКИ

Утилита grep может сообщить, сколько раз определённая строка была найдена в каждом файле. Для этого используется опция -c (счетчик):

grep -c 'word' /path/to/file

C помощью опции -n можно выводить номер строки, в которой найдено вхождение, например:

grep -n 'root' /etc/passwd

Получим:

1:root:x:0:0:root:/root:/bin/bash

ИНВЕРТИРОВАННЫЙ ПОИСК В GREP

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

grep -v пар /path/to/file

ВЫВОД ИМЕНИ ФАЙЛА

Вы можете указать grep выводить только имя файла, в котором было найдено заданное слово с помощью опции -l. Например, следующая команда выведет все имена файлов, при поиске по содержимому которых было обнаружено вхождение primary:

grep -l 'primary' *.c

ЦВЕТНОЙ ВЫВОД В GREP

Также вы можете заставить программу выделять другим цветом вхождения в выводе:

grep --color root /etc/passwd

 

image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *