![패턴 발생 횟수를 반복적으로 계산할 때 파일 이름 제거](https://linux55.com/image/83343/%ED%8C%A8%ED%84%B4%20%EB%B0%9C%EC%83%9D%20%ED%9A%9F%EC%88%98%EB%A5%BC%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B3%84%EC%82%B0%ED%95%A0%20%EB%95%8C%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%20%EC%A0%9C%EA%B1%B0.png)
grep 명령을 실행할 때:
grep -rc 'PATTERN' .
패턴이 발생한 줄 수를 인쇄하지만 다음과 같습니다.
./hotel_232424.dat:234
등...
./hotel_232424.dat:
부품을 제거하고 숫자만 인쇄하려면 어떻게 해야 합니까 ?
답변1
GNU 구현에서는 / 옵션을 grep
사용할 수 있습니다 .-h
--no-filename
$ grep -rc PATTERN .
./b:1
./a:0
./1/2/c:2
$ grep -rhc PATTERN .
1
0
2
휴대용/표준에 해당하는 것은 다음과 같습니다.
$ find . -type f -exec grep -c PATTERN {} \;
0
2
1
그러나 이는 grep
파일당 하나의 호출을 실행한다는 의미입니다.
대신 총 발생 횟수(여기서는 1+2 = 3)를 원하는 경우 다음과 같이 할 수 있습니다(이식 가능).
$ find . -type f -exec cat {} + | grep -c PATTERN
3
(일부 파일의 마지막 줄 뒤에 데이터가 있는 경우(즉, 텍스트가 아닌 파일) 이로 인해 결과가 엉망이 될 수 있습니다.)
또는 grep
귀하와 같은 지원을 사용하십시오 -r
.
$ grep -r PATTERN . | wc -l
3