可能重复:
用grep一个文件,但显示几个周边线路?
我要解析一个非常大的文件,我想,用命令grep(或任何其他工具)。
我想搜索的单词每个日志行FAILED
,然后打印上方,每个匹配线下方的线,以及匹配的行。
例如:
id : 15
Satus : SUCCESS
Message : no problem
id : 15
Satus : FAILED
Message : connection error
我需要打印:
id : 15
Satus : FAILED
Message : connection error
的grep的-A 1
选项会给你一个后线; -B 1
会给你一个前行; 和-C 1
结合了前,后两个给你一条线, -1
不相同。
使用-B,-A或-C选项
grep --help
...
-B, --before-context=NUM print NUM lines of leading context
-A, --after-context=NUM print NUM lines of trailing context
-C, --context=NUM print NUM lines of output context
-NUM same as --context=NUM
...
使用-A和-B开关(平均线,后线-前):
grep -A 1 -B 1 FAILED file.txt
文章来源: How can I make grep print the lines below and above each matching line? [duplicate]