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