Команда grep в Linux: Практические примеры использования

Продолжаем популяризировать Linux. Я не буду вас грузить историей возникновения утилиты grep, её расшифровкой – оно вам надо? Нет. Сразу перейдём к практике.

Сразу практика

  1. Поиск определённой строки в текстовом файле (посмотрим в логе веб-сервера, кто там пытается перебирать пароль на админку сайта):
    # cat litl-admin-SSL.log.1 | grep "LOGIN\ FAILED"
    Очень много записей. Как видите, grep работает как будто текстовый фильтр. Кстати, можно использовать регулярные выражения. Например указатели начала или конца строки (^ и $ соответственно). Можно использовать различные конвейеры для поэтапной фильтрации различных подстрок. Об этом следующий пример.
  2. Поиск строк, которые НЕ ВКЛЮЧАЮТ указнные шаблон (используется ключ -v). Например, посмотрим, у кого из пользователей есть интерактивная оболочка:
    # cat /etc/passwd | grep -v "nologin" | grep -v "false"
    4 пользователя. Все легальные. Хорошо )
  3. Поиск строк во всех файлах в указанном каталоге. Часто использую этот пример, чтобы найти какой-то фрагмент в исходниках. Например найдём, в каких файлах упоминается имя скрипта “ads.js”
    # grep -rn "ads.js"
    Ключи -r означает рекурсивный поиск в подкаталогах (от текущего) в каждом файле. А -n – указывает имя файла и номер строки. Очень удобно потом открыть файл редактором и перейти на нужный фрагмент.
  4. То же самое, но вывести ТОЛЬКО имена файлов:
    # grep -rl "ads.js"
  5. Регистронезависимый поиск. Да, шаблон регистрозависим. Если есть подозрение, что где-то в примерах выше будет указано имя файла “Ads.js” – не прокатит. Дабы не опростоволоситься, стоит добавить ключик -i и всё будет хорошо:
    # grep -irl "ads.js"

Достаточно ли этого? На мой взгляд – вполне. Есть конечно какие-то замудрёные экзотические сценарии, но колоссальный спектр задач покрывается решениями из этих 5 практических примеров. К слову, я успешно фильтровал текстовые логи на миллионы строк без особых проблем, так что инструмент великолепный!

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Leave a Reply