모든 발생을 계산하려면을 사용하십시오 -o
. 이 시도:
echo afoobarfoobar | grep -o foo | wc -l
그리고 man grep
물론 (:
최신 정보
일부는 grep -co foo
대신 grep -o foo | wc -l
.
하지마.
이 단축키는 모든 경우에 작동하지 않습니다. Man 페이지는 다음과 같이 말합니다.
-c print a count of matching lines
이러한 접근 방식의 차이점은 다음과 같습니다.
1.
$ echo afoobarfoobar | grep -oc foo
1
줄 ( a{foo}barfoobar
) 에서 일치하는 항목이 발견 되면 검색이 중지됩니다. 한 줄만 확인했고 일치 했으므로 출력은 1
. 실제로 -o
여기에서는 무시되며 grep -c
대신 사용할 수 있습니다 .
2.
$ echo afoobarfoobar | grep -o foo
foo
foo
$ echo afoobarfoobar | grep -o foo | wc -l
2
a{foo}bar{foo}bar
모든 항목 ( -o
) 을 찾기 위해 명시 적으로 요청했기 때문에 행 ( ) 에서 두 개의 일치 항목이 발견되었습니다 . 모든 발생은 별도의 줄에 인쇄되며 wc -l
출력의 줄 수만 계산합니다.