grep
15 commands
15 shown
Рекурсивный поиск без учёта регистра
Найти 'error' во всех файлах /var/log (любой регистр)
grep -ri 'error' /var/log/
Контекстные строки
3 строки до и 5 строк после каждого совпадения
grep -B3 -A5 'FATAL' app.log
Подсчитать совпадения
Вывести только количество совпадающих строк
grep -c 'POST /api' /var/log/nginx/access.log
Только совпавшая часть
Извлечь IP-адреса из лога через Perl-regex
grep -oP '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' access.log | sort -u
Инвертировать совпадение
Убрать строки-комментарии и пустые строки из конфига
grep -v '^#' /etc/nginx/nginx.conf | grep -v '^\s*$'
Поиск только по типу файлов
Рекурсивный поиск только по .py файлам
grep -r --include='*.py' 'import os' /srv/app/
Исключить директории
Рекурсивный поиск игнорируя .git и node_modules
grep -r --exclude-dir='.git' --exclude-dir='node_modules' 'TODO' .
Имя файла и номер строки
Показать файл и номер строки для каждого совпадения
grep -rn 'panic:' /var/log/app/
Быстрый поиск через rg
Файлы с TODO/FIXME/HACK в Python-коде
rg 'TODO|FIXME|HACK' --type py -l
rg с контекстом
3 строки контекста вокруг совпадений в Go файлах
rg 'panic' -C3 --glob '*.go'
rg в скрытых файлах
Поиск в скрытых и .gitignore файлах
rg 'secret_key' --hidden --no-ignore
rg: предпросмотр замены
Предпросмотр замены без записи в файл
rg 'old_value' --replace 'new_value' --passthru config.yaml
rg: статистика поиска
Суммарные совпадения, файлы, время поиска
rg 'error' /var/log/ --stats 2>&1 | tail -5
Поиск в бинарных файлах
Обрабатывать бинарный файл как текст для поиска в памяти
grep -a 'password' /proc/<pid>/mem 2>/dev/null | strings | head -20
Расширенный regex с OR
Найти строки содержащие ERROR, WARN или CRIT
grep -E '(ERROR|WARN|CRIT)' app.log | tail -50
no commands match