grep与正则表达式在行中间

时间:2011-04-24 19:05:29

标签: regex bash grep

我有一个如下所示的日志文件:

04/21 15:22:56信息[jrpp-42] - 执行数据库查询时出错。找不到存储过程'dbo.get_discount'。指定owner.objectname或使用sp_help检查对象是否存在(sp_help可能会产生大量输出)。
第67行发生错误。包含或处理的特定文件序列为:/default.cfm ||位置 - 10.8.79.7 ||浏览器 - || Querystring - sshealth = 1 ||推荐人 -

我正在尝试专门针对这部分:

执行数据库查询时出错。找不到存储过程'dbo.get_discount'。

然而dbo之后的部分。是可变的。它并不总是get_discount。我正在尝试找到将解释该表达式的正则表达式,然后仍然包含“未找到”字符串。

我可以分两部分来做,但我想知道是否有正则表达式可行。感谢。

例如grep“执行数据库查询时出错。未找到存储过程'dbo。[REGEX]。” filename.log

2 个答案:

答案 0 :(得分:2)

grep "Stored procedure 'dbo.[^']*' not found" filename.log

答案 1 :(得分:0)

您可以使用grep,也可以使用awk。使用awk,您可以在找到字符串时进行编程。

awk "/Stored procedure 'dbo.[^']*' not found/" file