Grep
Команда grep призначена для пошуку рядків, що відповідають шаблону, заданому в параметрі “Шаблон”
grep [опции] шаблон [/путь/к/файлу/или/папке…]
або
команда | grep [опции] шаблон
Опции
- -E, –extended-regexp - включить расширенный режим регулярных выражений (ERE);
- -F, –fixed-strings - рассматривать шаблон поиска как обычную строку, а не регулярное выражение;
- -G, –basic-regexp - интерпретировать шаблон поиска как базовое регулярное выражение (BRE);
- -P, –perl-regexp - рассматривать шаблон поиска как регулярное выражение Perl;
- -e, –regexp - альтернативный способ указать шаблон поиска, опцию можно использовать несколько раз, что позволяет указать несколько шаблонов для поиска файлов, содержащих один из них;
- -f, –file - читать шаблон поиска из файла;
- -i, –ignore-case - не учитывать регистр символов;
- -v, –invert-match - вывести только те строки, в которых шаблон поиска не найден;
- -w, –word-regexp - искать шаблон как слово, отделенное пробелами или другими знаками препинания;
- -x, –line-regexp - искать шаблон как целую строку, от начала и до символа перевода строки;
- -c - вывести количество найденных строк;
- –color - включить цветной режим, доступные значения: never, always и auto;
- -L, –files-without-match - выводить только имена файлов, будут выведены все файлы в которых выполняется поиск;
- -l, –files-with-match - аналогично предыдущему, но будут выведены только файлы, в которых есть хотя бы одно вхождение;
- -m, –max-count - остановить поиск после того как будет найдено указанное количество строк;
- -o, –only-matching - отображать только совпавшую часть, вместо отображения всей строки;
- -h, –no-filename - не выводить имя файла;
- -q, –quiet - не выводить ничего;
- -s, –no-messages - не выводить ошибки чтения файлов;
- -A, –after-content - показать вхождение и n строк после него;
- -B, –before-content - показать вхождение и n строк после него;
- -C - показать n строк до и после вхождения;
- -a, –text - обрабатывать двоичные файлы как текст;
- –exclude - пропустить файлы имена которых соответствуют регулярному выражению;
- –exclude-dir - пропустить все файлы в указанной директории;
- -I - пропускать двоичные файлы;
- –include - искать только в файлах, имена которых соответствуют регулярному выражению;
- -r - рекурсивный поиск по всем подпапкам;
- -R - рекурсивный поиск включая ссылки;
Приклади
Пошук текста в файлі: grep root /etc/passwd
Пошук без реєстра символів: grep -i “time” /etc/passwd
Декілька слів для пошуку: grep -e “root” -e “daemon” /etc/passwd
Вимкнути регулярку: grep -F “[” /etc/grub.d/00_header
З іншою командою: ps aux | grep “gnome”
Робота з логами
Можна за допомогою grep знайти в файлі логів потрібні записи, наприклад про помилку 504:
grep "504" /var/log/nginx/error.log
Також перевірити логи в заархивованому файлі за допомогою zgrep:
zgrep "504" /var/log/nginx/error.log.gz
Також пошук в кількох файлах логів відразу:
grep "504" /var/log/nginx/*.log