나는이 방법을 해결할 수 있는지 모른다는 것을 모르는 문제를 다루고 있습니다. 당신이 나를 도울 수 있기를 바랍니다.단어가 포함 된 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()
그리고 나는 "[SEVERE]"표현을 찾고 있어요 : 문제
로그 파일은 다음과 같습니다.
해당 표현식이 3 번 이상 나타나는 경우 일치를 원합니다.
나는 .*\[SEVERE\].*
이 그 표현과 일치하는 모든 줄을 제공한다는 것을 알고 있지만 그 줄 수가 3 개 이상인 경우에만 일치시키기를 원합니다. 정규 표현식으로 그것을 수행하는 방법이 있습니까? 아니면 Monit과 함께하는 대안인가?
로그 파일의 각 행을 개별적으로 읽은 다음 일치 항목이 3 개일 경우 전체 파일을 일치 항목으로 반환합니다. – Michael
또 다른 방법은'grep'을 사용하여 줄을 찾아낸 다음'wc'를 사용하여 줄에 매치되는 줄을 계산하는 것입니다. – nhahtdh
불행히도 이러한 옵션은 Monit의 범위를 넘어 섰다고 나는 잘못 생각합니까? – catteneo