特定会话匹配后的x行grep
如何使用shell对特定会话、错误和错误后的所有其他内容进行grep,但不包括其他会话 下面是一个例子:特定会话匹配后的x行grep,grep,sh,Grep,Sh,如何使用shell对特定会话、错误和错误后的所有其他内容进行grep,但不包括其他会话 下面是一个例子: Mon Jun 6 14:19:12 2011 (1307369952): Received from 10.25.68.106; Session:48090 Message : 0x300 (NDMP_TAPE_OPEN) Timestamp : 1307369953 XSequence : 6 RSequence : 0 Error : 0 (NDMP_NO_ERR)
Mon Jun 6 14:19:12 2011 (1307369952): Received from 10.25.68.106; Session:48090
Message : 0x300 (NDMP_TAPE_OPEN)
Timestamp : 1307369953
XSequence : 6
RSequence : 0
Error : 0 (NDMP_NO_ERR)
Device : tape016
Mode : 0 (Read Only)
我想用shell来grep Session:48090和这个Session的错误、设备和模式。
因此,我的输出应该是:
Error : 0 (NDMP_NO_ERR)
Device : tape016
Mode : 0 (Read Only)
谢谢,
-Brian使用
-A
参数包含匹配后的接下来7行,然后使用tail
获取该输出的最后3行。例如:
grep -A 7 "Session:48090" file | tail -n 3
使用
-A
参数包括匹配后的下7行,然后使用tail
获取该输出的最后3行。例如:
grep -A 7 "Session:48090" file | tail -n 3
如果您不知道“会话”行之后有多少行,但您知道您需要“错误”、“设备”和“模式”,您可以这样做:
sed -ne '/Session:48090/,/Session:/{/^[ ]*Error/p;/^[ ]*Device/p;/^[ ]*Mode/p}' your.file
每个方括号内都有一个空格和一个制表符。如果您不知道“会话”行之后有多少行,但您知道您需要“错误”、“设备”和“模式”,您可以这样做:
sed -ne '/Session:48090/,/Session:/{/^[ ]*Error/p;/^[ ]*Device/p;/^[ ]*Mode/p}' your.file
每个方括号内都有一个空格和一个制表符