
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