У меня большой многолетний журнал access_log, и мне нужно просмотреть все записи для определенного IP-адреса из SSH. Формат:
111.111.111.111 - ...
222.222.222.222 - ...
111.111.111.111 - ...
Как мне просматривать только записи журнала для 111.111.111.111? Я использую CentOS.
Grep для этого - самый простой способ.
grep "^111\.111\.111\.111\b" access_log
Мой обязательный GNU parallel ответ:
cat access_log | parallel --pipe -k grep ^111.111.111.111
Обратите внимание, что для работы требуется относительно последняя версия parallel. Самое интересное в этом подходе - он разбивает файл на несколько фрагментов и запускает grep для этих фрагментов параллельно вместо того, чтобы запускать grep для всего файла. В -k
опция гарантирует, что заказ останется правильным.
Для очень большого файла, который потенциально может быть намного быстрее, чем простой grep. Во всяком случае, есть что попробовать.