我正在處理一個問題,我不知道是否有可能解決這個問題,希望你能幫助我,讓我們看看:正則表達式是否匹配包含單詞的X字符串?
我正在使用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()
而我要找的 「[嚴重]」 表達。
我想要一個匹配,如果該表達式出現超過3次。
我知道.*\[SEVERE\].*
給我所有符合該表達式的行,但我只想匹配如果行數是3或更多。有沒有辦法用正則表達式來做到這一點?或者可以選擇與Monit一起做?
分別讀取日誌文件的每一行,然後當您獲得3個匹配項時,將整個文件作爲匹配返回。 – Michael 2013-03-13 18:17:28
另一種方法是使用'grep'來挑出線條,然後使用'wc'來計算匹配這些字詞的線條。 – nhahtdh 2013-03-13 18:34:58
我認爲不幸的是,這些選項超出了Monit的範圍,我錯了嗎? – catteneo 2013-03-13 18:46:20