如何使用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)我想要grep会话:48090和错误,设备和模式的这个会话使用外壳。所以我的输出应该是:
Error : 0 (NDMP_NO_ERR)
Device : tape016
Mode : 0 (Read Only)谢谢,-Brian
发布于 2011-06-07 03:38:47
使用-A参数包括匹配后的下7行,然后使用tail获取该输出的最后3行。示例:
grep -A 7 "Session:48090" file | tail -n 3发布于 2011-06-07 03:45:17
如果你不知道"Session“行后面到底有多少行,但你知道你需要"Error”、"Device“和"Mode",你可以这样做:
sed -ne '/Session:48090/,/Session:/{/^[ ]*Error/p;/^[ ]*Device/p;/^[ ]*Mode/p}' your.file在每个方括号中都有一个空格和一个制表符。
https://stackoverflow.com/questions/6256949
复制相似问题