grep -G '{string}' *. | wc -l
{string}
전체 디렉토리의 총 개수를 알려줍니다. 반면에 wc -l *.
파일당 줄당 개수는 제공되지만 {string}
내가 관심 있는 파일당 개수는 제공되지 않습니다. 나는 {string}
각 파일의 발생 횟수를 개별적으로 계산할 수 있는 두 가지 조합을 찾고 있습니다.
답변1
이것grep필요한 옵션은 다음과 같습니다 -c
.
-씨
선택한 행 수만 표준 출력에 씁니다.
검색하려는 중첩된 디렉터리가 있는 경우:
find /your_dir -type f -exec grep -cF '{string}' {} +
또는 GNU Grep
(또는 다른 구현)을 사용할 수 있는 경우grep-r
재귀 검색을 위해 )를 지원합니다 .
grep -rcF '{string}' your_dir
디렉토리 내부에 하위 디렉토리가 없으면 간단합니다.
grep -cF '{string}' your_dir/*
작동합니다.
또한 -G
( GNU Grep
특정) BRE
엔진이 활성화되어 있으며 이는 기본 선택이며 ERE
유사한 태그 {
(이스케이프되지 않은 경우)를 처리하지 않습니다. -F
옵션 강제 사용을 고려하십시오 .grep필요하지 않은 경우 간단한 문자열을 검색하거나 정규식 메타 문자 보간을 비활성화합니다.
답변2
grep
옵션은 -c
각 파일에 대해 선택한 줄 수를 인쇄합니다.
grep -c '{string}' *.
(옵션 -G
(기본 정규식)은 기본값이므로 중복됩니다.)
샘플 파일 사용
file1
foo
bar
baz
foo
bar
file2
foo
bar
baz
foo
bar
foo
foo
bar
bar foo
baz
foo
bar
나는 다음과 같은 결과를 얻습니다.
$ fgrep -c foo file*
file1:2
file2:6
파일 이름 패턴이 하나의 파일에만 일치하는 경우 grep
해당 파일 이름은 인쇄되지 않습니다. 이를 방지하려면 -H
GNU가 있는 경우 옵션을 사용할 수 있습니다 grep
.
grep -cH '{string}' *.
( /dev/null
비표준 옵션 대신 추가하면 -H
첨부파일의 개수가 0으로 표시됩니다.)