Как использовать tail -f с grep для отображения окружающих линий


16

Я хотел бы видеть выходные данные в лог- файле, ограниченном только одним доменом, а также следующими двумя строками .

Пример:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

это показывает все строки, которые содержат «mydomain.de», но важная информация находится в строке ниже строки, где домен включен

Ответы:


25

У grep есть дополнительные опции для определения количества строк до и после результата:

  • -A (после)
  • -B (перед)
  • -C (контекст [до + после])

Так что в вашем случае вам нужно -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

вышеуказанная команда печатает NUMBERстроки после YOURDOMAINв файле.


Обратите внимание, однако, что это расширение GNU. Если вы используете Linux, у вас grepопределенно есть эта опция. Если нет, вам лучше проверить.
Леонид

9

Попробуйте передать количество контекстных строк в grep.

| grep -C 5

напечатает 5 строк до и после матча.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.