grep - 打印文件名无法处理

grep - 打印文件名无法处理

我有这样的日志。其处理 .bill.file 格式文件的数量。如果处理过程中出现任何问题严重消息后跟信息将打印其中包含有关文件路径的详细信息

SEVERE  2016-02-09 00:45:18 [process number] rocessRunner.process Exception during process 123.bill.file
SEVERE  2016-02-09 00:45:18 [process number]
...
...
INFO    2016-02-09 00:45:18 [process number] Runner. Closing input  /var/run/data/123.bill.file

我的要求是获取出现异常的文件路径。

答案1

grep并不真正适合基于条件的匹配,例如您的要求,但更适合awk可以在多行上处理多个模式匹配。根据您的输入,我们首先匹配以 开头的字符串SEVERE,当下一个匹配INFO出现时,我们打印最后一列可能包含您要查找的文件。

awk '/^SEVERE/{flag=1; next} flag && /^INFO/{print $NF; flag=0}' file

相关内容