我正在处理一个我不知道是否可以通过这种方式解决的问题,希望你能帮助我,让我们看看:
我正在使用 Monit 来监视一些日志文件,并且我希望它查找某个表达式,但是如果该表达式出现的次数超过 3 次,我只想要一个正匹配。
有问题的日志文件如下所示:
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] [SEVERE] :: Exception was caught: Could not bind to port.. Exiting.
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] [SEVERE] :: Exception was caught: Could not bind to port.. Exiting.
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] [SEVERE] :: Exception was caught: Could not bind to port.. Exiting.
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] Configurator :: FillSensor()
[2013/03/12-16:07:06] [SEVERE] :: Exception was caught: Could not bind to port.. Exiting.
[2013/03/12-16:07:06] Configurator :: FillSensor()
我正在寻找“ [SEVERE] ”表达式。
如果该表达式出现超过 3 次,我想要一个匹配项。
我知道这.*\[SEVERE\].*
给了我匹配该表达式的所有行,但我只想匹配该行数为 3 或更多。有没有办法用正则表达式来做到这一点?或者用Monit做它的替代方法?