Я имею дело с проблемой, что я не знаю, можно ли решить этот путь, надеюсь, что вы можете мне помочь. Давайте посмотрим:Регулярное выражение для соответствия, если строки X содержат слово?
Я использую Монит для мониторинга некоторых файлов журналов, и я хочу он ищет определенное выражение, но мне нужно только положительное совпадение, если это выражение появляется больше, скажем, 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 или более. Есть ли способ сделать это с помощью регулярных выражений? Или альтернатива сделать это с Монитом, возможно?
Прочитайте в каждой строке своего файла журнала отдельно, а затем, когда вы получите 3 совпадения, верните весь файл в соответствие. – Michael
Другой способ - использовать 'grep' для выделения строк, а затем использовать' wc' для подсчета строк, соответствующих словам. – nhahtdh
Я думаю, что, к сожалению, эти варианты выходят за рамки Монита, я не прав? – catteneo