매우 큰 로그 파일에는 다음과 같은 항목이 있습니다.
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