如何在grep中使用tail -f来显示周围的线条


16

我希望看到日志文件中的输出只包含一个域,也包含以下两行

例:

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

这显示了所有包含“ mydomain.de”的行,但重要信息在该行下方的行中,其中包含域

Answers:


25

grep有额外的选项来定义结果前后多少行:

  • -A (后)
  • -B (之前)
  • -C (上下文[之前+之后])

因此,您需要-A

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

上面的命令在文件NUMBER后打印行YOURDOMAIN


但是请注意,这是GNU扩展。如果您使用的是Linux,则grep肯定有此选项。如果不是,则最好检查一下。
Leonid

9

尝试将上下文行数传递给grep。

| grep -C 5

将在比赛前后打印5行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.