我如何使用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)
Device : tape016
Mode : 0 (Read Only)
我想使用shell grep Session:48090以及此会话的错误,设备和模式。 所以我的输出应该是:
Error : 0 (NDMP_NO_ERR)
Device : tape016
Mode : 0 (Read Only)
谢谢, -Brian
答案 0 :(得分:2)
使用-A
参数包含匹配后的后7行,然后使用tail
获取该输出的最后3行。例如:
grep -A 7 "Session:48090" file | tail -n 3
答案 1 :(得分:1)
如果您不确切知道“会话”行之后有多少行,但您确实知道需要“错误”,“设备”和“模式”,则可以执行以下操作:
sed -ne '/Session:48090/,/Session:/{/^[ ]*Error/p;/^[ ]*Device/p;/^[ ]*Mode/p}' your.file
每个方括号内都有一个空格和一个标签。