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