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

16

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

Пример:

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

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

rubo77
источник

Ответы:

25

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

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

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

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

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

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

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

| grep -C 5

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

Сантош
источник