【发布时间】:2017-09-08 09:12:41
【问题描述】:
我正在通过一些日志文件运行正则表达式。 捕获组应捕获一些相关字段。 我想知道日志文件是否提到了工作的成功结束。这可以通过字符串“作业执行成功”的存在与否来判断
到目前为止我的正则表达式:
^Job started at\s'(\d+\s\d+:\d+:\d+:\d+)'\s+orderno\s+-\s+'(\w+)'\s+runno\s+-\s+'(\d+)'[\s\S]+Host1\s'([\w.]+)'\[([\w-]+)\] username '([\w\\]+)' - Host2\s'([\w.]+)'\[([\w-]+)\] username '([\w\\]+)'[\s\S]+(Job executed successfully)?[\s\S]+Job ended at\s'(\d+\s\d+:\d+:\d+:\d+)'\s+Elapsed time\s\[([\d.]+)sec\]\sCPU usage\s\[([\d.]+)sec]
(我对正则表达式有点陌生,所以它根本不完美,需要一些强化)
成功结束的示例日志: 上面的正则表达式只有在“(作业执行成功)?”后面的问号才有效。已删除,我认为这不是必需的。
作业开始于 '0902 23:56:00:367' orderno - '0tzh0' runno - '00064' 转移次数 - 1
Host1 'Local'[Windows-LOCAL] 用户名'xxx\xxx' - Host2 'xxx.xxx.xx'[Unix-SFTP] 用户名'xxx'
本地主机是:xxx - Windows 200x [601] Service Pack 1 build 7601 - Intel64 Family 6 Model 37 Stepping 1, GenuineIntel
********** 开始传输 #1 out of 1 *************** 转移 #1 成功完成
作业成功执行。退出。
作业结束于“0902 23:56:07:138” 已用时间 [7 秒] CPU 使用率 [0.15 秒]
未成功结束的示例日志: 上面的正则表达式就像它应该的那样工作。
作业开始于 '0831 15:26:00:365' orderno - '0tuq5' runno - '00030' 转移次数 - 4
Host1 'Local'[Windows-LOCAL] 用户名'xxx\xxx' - Host2 'xxx.xxx.xx'[Unix-SFTP] 用户名'xxx'
本地主机是:xxx - Windows 200x [601] Service Pack 1 build 7601 - Intel64 Family 6 Model 37 Stepping 1, GenuineIntel
********** 开始传输 4 次中的第 1 次 ****************** 无法连接到“xxx.xxx.xx”上的 SSH 服务器:SFTP_Connect:psftp_connect 失败:ssh_init:网络错误:连接超时 .
无法建立与主机 sftp.onenet.be 的连接
作业结束于 '0831 15:26:21:426'
经过的时间 [21 秒] CPU 使用率 [0.0 秒]
【问题讨论】:
标签: regex logfile capturing-group