在linux shell上显示日志文件的特定部分
我正在寻找一种从日志文件中获取特定信息的方法 这是我的日志文件:在linux shell上显示日志文件的特定部分,linux,shell,logging,Linux,Shell,Logging,我正在寻找一种从日志文件中获取特定信息的方法 这是我的日志文件: ------ [SQL STATEMENT MAYBE SEVERAL LINES LONG ] ERR: [01.02.2012 14:17:44] [[SOME][MORE][INFO] additional debug informations] [corresponding source file] ------ [SQL STATEMENT MAYBE SEVERAL LINES LONG ] ERR: [01.02.2
------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
ERR: [01.02.2012 14:17:44] [[SOME][MORE][INFO] additional debug informations]
[corresponding source file]
------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
ERR: [01.02.2012 14:21:42] [[SOME][MORE][INFO] additional debug informations]
[corresponding source file]
------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
DEBUG: [23.08.2011 22:30:01] []
[corresponding source file]
------
此日志文件包含sql语句的调试和错误信息。
我需要的是从这个日志文件中获取所有sql错误消息块
这些块由带“----”的线分隔
与文件的第一个条目一样,错误消息在
消息块。
如何从文件中获取这些消息。
我不想为这种任务编写特殊的脚本。
因此,如果可以使用命令行工具来实现这一点,那就太好了
感谢您的帮助。
awk
可以为您提供:
awk 'BEGIN { RS="------" ; ORS=RS}
$0 ~ "ERR: " { print }' INPUTFILE
将打印错误:
块。如果您想要其他的,只需将~
替换为~代码>
.您可以使用grep:
grep ERR: filename
你应该表现出你的努力。我们是来帮忙的,但不是来完成你的任务的。嘿,谢谢。这真令人印象深刻。我同意你的看法,但是我需要几行代码来完成这项工作,我想知道是否只需一个短命令就可以完成。抱歉,grep自己会打印ERR:模式出现的行。