일치하는 줄 수 대신 grep과 일치하는 총 일치 수 계산


29

grep은 일치하는 총 경기 수를 계산하는 방법을 제공합니까? -c 옵션은 정규 표현식과 일치하는 줄 수만 반환하지만이 경우 한 줄에 여러 개의 일치 항목이 있습니다.

답변:


29

이 시도:

grep -o -E "your expression" file |wc -l

음, -E는 예일뿐입니다. -P, -F 등일 수 있습니다. point는 -o입니다.

테스트:

kent$  echo "abc xxx yyy"|grep -cP "[a-z]{3}"      
1

kent$  echo "abc xxx yyy"|grep -oP "[a-z]{3}"|wc -l
3

8

일치하는 행의 서브 섹션 만 인쇄되어야 함을 표시하는 -o 플래그가 있습니다.

wc -l과 함께 사용하십시오.

grep -o "part of line" | wc -l

남자 grep도 그것을 설명합니다.


1

grep을 사용하여 다른 답변의 대안으로 다음을 수행하십시오.

grep -o "seach pattern" somefile.txt | grep -c ""

첫 번째 grep의 -o는 각 줄이 일치하지 않는 한 전체 줄이 아니라 각 일치 항목 만 출력합니다. 두 번째 grep의 -c는 'em'을 센다.

입력해야 할 문자가 더 많지만 (예 : 4 또는 5) 기억하기가 더 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.