로그 파일에서 특정 패턴을 검색하고 일치 항목 수를 계산하는 방법은 무엇입니까?

로그 파일에서 특정 패턴을 검색하고 일치 항목 수를 계산하는 방법은 무엇입니까?

매우 큰 로그 파일에는 다음과 같은 항목이 있습니다.

somecompany.somepackage.datacontrol.provider.DataProvider@ 입력 흐름c37ae61.풀어 주다()

항목 간 차이점은 앞 @과 뒤 의 문자열 .release()(굵게 표시된 부분)뿐입니다.

검색에서 삭제해야 하는 다음과 같은 다른 항목이 있습니다.

somecompany.somepackage.datacontrol.provider.DataProvider@ 입력 흐름c37ae61.다른 것()

따라서 내 검색 패턴은 다음으로 끝나야 합니다..release().

로그 파일에서 이러한 발생 횟수(일치하는 줄 수)를 어떻게 알 수 있고 일치하는 패턴을 모두 인쇄할 수 있나요?

추신: 저는 Linux 환경을 사용하고 있습니다.

답변1

나는 grep -c옵션이 배타적이라고 생각합니다. -c 옵션을 다른 옵션과 결합하여 일치하는 행을 출력하는 것은 불가능합니다.그리고카운트. 따라서 tee를 사용하면 일치 항목이 출력됩니다.그리고일치하는 항목을 임시 파일에 쓴 다음 파일의 줄 수를 셉니다.

grep 'FLOW ENTERING.*release()' k  | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp

답변2

당신이 사용할 수있는 grep '.release()' file|wc -l

관련 정보