각 폴더의 파일에 단어가 몇 번 나타나는지 계산하는 방법은 무엇입니까?

각 폴더의 파일에 단어가 몇 번 나타나는지 계산하는 방법은 무엇입니까?

텍스트 파일이 포함된 하위 디렉터리가 많이 있는 디렉터리가 있습니다. 모든 하위 디렉토리에 존재하는 "foo"라는 단어의 총 합계가 아니라 모든 단일 하위 디렉토리에 "foo"가 몇 번 나타나는지 알아야 합니다(단, 첫 번째 수준에만 해당). 간단히 말해서 각 디렉토리에서 수동으로 실행하면 이 문제를 해결할 수 있습니다.

grep -riwo 'foo' | wc -l 

분명히 그 수가 많기 때문에 이것은 실현 가능하지 않습니다. 그래서 하위 디렉토리가 포함된 디렉토리에서 이것을 시도했습니다.

ls -1 | xargs -L1 grep -riwo 'foo' | wc -l

wc그러나 이것은 내가 얻은 것에서 모든 폴더에서 실행된 후에만 출력을 가져오고 grep모든 결과가 포함된 전체 목록을 파이프하여 wc모든 디렉토리에서 발생하는 "foo"의 총 합계를 출력하기 때문에 작동하지 않습니다 . xargs그 시점에서 불필요하게 만드는 것

답변1

최상위 디렉터리당 합계만 원하므로 간단한 루프를 추가합니다.

for d in */; do 
  printf '%s: ' "$d"; grep -riwo 'foo' -- "$d" | wc -l
done

관련 정보