我有一个python脚本,用于报告在17分钟的时间段内错误在catalina.out
中显示的次数。某些错误包含更多信息,显示在错误下方的下三行中。不幸的是,我正在寻找的句子包含[]
。我不想使用正则表达式进行搜索。有没有办法关闭正则表达式功能,只进行精确搜索?
以下是我搜索的句子的示例:
bob:[2012-08-30 02:58:57.326]错误:web.errors.GrailsExceptionResolver处理请求时发生异常:[GET] / bob / event
由于
答案 0 :(得分:2)
如果您正在使用bash和常规grep,则必须转义[]
个字符,即\[ ... \]
,
grep 'bob: \[2012-08-30 02:58:57.326\] ERROR: web.errors.GrailsExceptionResolver Exception occurred when processing request: \[GET\] /bob/event' catalina.out
不确定您是否真的在询问如何搜索“17分钟时间段”和/或如何“在错误下方的下三行中显示”。
如果您显示样本输入和样本输出,它将有助于提供答案。
我希望这会有所帮助。
答案 1 :(得分:2)
(假设您使用的是标准grep命令)
有没有办法关闭正则表达式功能,只进行精确搜索?
当然,您可以将-F
标记传递给grep
,如下所示:
grep -F "[GET]" catalina.out
请记住将搜索字词放在引号中,否则bash会以特殊方式解释括号。
答案 2 :(得分:0)
无需担心括号。正则表达式仍然可以搜索它们。你只需要逃避正则表达式中的字符:
pattern = r'\[\d+-\d+-\d+ \d+:\d+:\d+\.\d+] ERROR:' # or whatever