【发布时间】:2019-07-19 17:16:56
【问题描述】:
如何从依赖 2 行的日志文件中选择/过滤内容。 我需要从日志文件中过滤掉内容,如果当前行中的“pattern1”后面跟着下一行的“pattern2”?
示例:第 1 到 7 行
18.07.19 23.44.01 APP1 CHECK SRBR 820224 APPUSER 12
18.07.19 23.44.01 APP1 DATABASE ERROR ------> PROGRAM FAILURE APPUSER 866
18.07.19 23.44.01 APP1 OPTI-LOCK-FORCE-ERROR SITUATION A
18.07.19 23.44.01 APP1 CHECK SRBR 820224
18.07.19 23.44.01 APP1 DATABASE ERROR ------> PROGRAM FAILURE
18.07.19 23.44.01 APP1 CHECK SRBR 820224
18.07.19 23.44.01 APP1 ROLLBACK
如果发生
DATABASE ERROR ------> PROGRAM FAILURE
在当前行后跟内容
OPTI-LOCK-FORCE-ERROR SITUATION
在下一行 然后我想过滤掉这两条线。
我需要知道DATABASE ERROR ------> PROGRAM FAILURE 或OPTI-LOCK-FORCE-ERROR SITUATION 的单个事件。
如果我使用
sed -n '/DATABASE ERROR ------> PROGRAM FAILURE/,/OPTI-LOCK-FORCE-ERROR/!p'
示例中的第 5 行也被过滤掉了
哪种语法/工具可以支持这一点,我更喜欢 grep、sed 或 awk。 非常感谢,Steff
【问题讨论】: