Изучение файла с помощью команды tail

#linux #unix

#linux #unix

Вопрос:

Я использую tail -f для просмотра файлов журналов в режиме «реального времени». Что сделать, чтобы иметь возможность просматривать только строки, содержащие, например, 127.0.0.1?

Ответ №1:

grep твой друг:

  tail -f foo | grep '127.0.0.1'
  

Ответ №2:

 tail -f /path/to/log/file | grep --line-buffered 127.0.0.1
  

В этом случае --line-buffered не требуется строго для grep(1) , но это было бы, если бы вы хотели отправить выходные данные на less(1) или некоторые другие этапы обработки, и все еще хотели видеть отдельные строки по мере их регистрации. (См. setvbuf(3) для получения полной информации о буферизации.)

Ответ №3:

Watch также является отличной командой для этого

смотрите grep ‘127.0.0.1’ foo

и он будет обновляться каждые 2 секунды.

Комментарии:

1. 1. Однако требования к среде выполнения сильно отличаются — watch будет повторно запускать grep для всего файла каждые две секунды, в то время как tail будет выводить новые строки, подлежащие сканированию только один раз.

Ответ №4:

Если вы хотите использовать grep для всех строк, содержащих любой IP-адрес, а не только 127.0.0.1, то

 tail -f filename|grep '^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$'