使用 AWK 检索神秘日志文件中的错误

Using AWK to Retrieve an Error in a Cryptic Log File

我需要抓取当前发生的错误,忽略早期发生的错误。问题是日期在上面几行(与错误代码不在同一行)。我如何 return 来自

的信息
***begin ibmdb error message*** 

其中包含与当前时间相等的日期和时间,并包含所有此错误日志数据:

*** begin ibmdb error message ***
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root'  Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'

DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N  The current transaction has been rolled
back because of a deadlock or timeout.  Reason code "68".  SQLSTATE=40001

awk 'BEGIN{FS="begin ibmdb error message"} 捕获开头 - 我如何封装结尾 - Reason code "68"

是这样的吗?我从测试的时间点开始,而不是 begin ibmdb error message 因为我认为可能会有更多部分以相同的文本开头。

$ awk '/21:50/,/Reason code "68"/' file11
Sun Dec 18 21:50:57 2016 - program 'execjob', User 'OSID:root', RMId 'root'  Driver Version '9.0.1.14.865 2015-01-20 04:00:00'
DELETEDBREC() error on file 'USERRPT' in 'GEN'

DeleteSqlRec(lawson."USERRPT", 1)
DB2 FATAL ERROR for SQLExecute - Code: 40001/-911
[IBM][CLI Driver][DB2/AIX64] SQL0911N  The current transaction has been rolled
back because of a deadlock or timeout.  Reason code "68".  SQLSTATE=40001

提示:您可以在此处查看 awk 中有关模式匹配的功能:https://www.gnu.org/software/gawk/manual/html_node/Expression-Patterns.html

FS 告诉 awk 行中的字段将由 'begin ibmdb error message'

分隔

你可能想做类似的事情

awk '/begin ibmdb error message/,/Reason code "68"/'