从文本文件中获取特定行

gag*_*eet 5 unix shell file-io

我正在UNIX盒子上工作,并尝试运行一个应用程序,它给标准输出提供了一些调试日志.我已将此输出重定向到日志文件,但现在希望获取显示错误的行.

我的问题在于这很简单

cat output.log | grep FAIL
Run Code Online (Sandbox Code Playgroud)

没有帮助.因为这只显示了其中包含FAIL的行.我想要更多的信息.就像这条线上方的2-3条线路一样失败.有没有办法通过一个简单的shell命令来做到这一点?我想有一个命令行(可以有管道)来执行上述操作.

PEZ*_*PEZ 9

grep -C 3 FAIL output.log
Run Code Online (Sandbox Code Playgroud)

请注意,这也消除了猫(UUOC)无用使用.


Mik*_*ell 5

grep -A $ NUM

这将在匹配后打印$ NUM行的尾随上下文.

-B $ NUM打印前导上下文.

男人grep是你最好的朋友.

所以在你的情况下:

猫日志| grep -A 3 -B 3失败