====== 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