给定一个包含“打印数据”的日志文件,该文件可能跨越多行,然后出现错误,例如:
print some data 1
print some data 2
print some data 3
data 3-1
data 3-2
error
print some data 4
print some data 5 我要查找有错误的所有日志条目,例如:
print some data 3
data 3-1
data 3-2
error并确定导致错误的"print“行
我该怎么办?
发布于 2016-06-30 01:54:23
您可以使用awk来完成此操作:
awk '$1=="print"{printBuffer=$0} $1=="error"{print printBuffer}' yourfile这将按空格字符(awk默认值)拆分每条记录。如果记录的第一个字段是"print“,它将整个记录($0)存储在变量printBuffer中。如果第一个字段是" error ",那么它将打印printBuffer中的所有内容,这是它遇到错误之前遇到的最后一个print行。
https://stackoverflow.com/questions/38105690
复制相似问题