wc -l은 폴더 및 하위 폴더에 있는 모든 txt 파일의 줄 수를 계산합니다.

wc -l은 폴더 및 하위 폴더에 있는 모든 txt 파일의 줄 수를 계산합니다.

여러 하위 폴더에 수백 개의 txt 파일이 있고 각 txt 파일의 줄 수를 계산하고 싶습니다. 다음을 사용하여 현재 디렉터리의 모든 txt 파일에 대해 이 작업을 수행할 수 있습니다.

for f in *.txt; do wc -l "$f"; done

출력:

[number] [txt filename]
[number] [txt filename]
[number] [txt filename]

이것은 좋다. 그러나 각 하위 폴더를 수백 번 탐색하고 싶지는 않습니다. 디렉토리 구조는 다음과 같습니다.

-main
    -folder1
        textfile1.txt
        textfile2.txt
        textfile3.txt
    -folder2
        textfile4.txt
        textfile5.txt
        textfile6.txt
    -folder3
        textfile7.txt
        textfile8.txt
        textfile9.txt
...and so forth

텍스트 파일의 .txt 확장자 앞에 공백과 몇 개의 점이 포함되어 있다는 점은 주목할 가치가 있습니다. 그러나 위에서 설명한 대로 wc -l을 사용하면 오류가 발생하지 않습니다. MacOS를 실행하는 Mac에서 터미널을 사용하는 것은 대부분 BSD와 유사하게 동작합니다.

답변1

find /the/path/to/search/ -name "*.txt" -exec wc -l {} \;

답변2

디렉터리 구조가 변경되지 않으면 와일드카드를 사용하여 목록을 안전하게 확장할 수 있습니다(명령줄 길이를 초과할 만큼 결과 파일이 너무 많지 않다고 가정).

wc -l main/*/*.txt

또는

wc -l */*/*.txt

...시작 위치와 포함하려는 항목에 따라 다릅니다.

답변3

find /yourpath -type f -name "*.txt" -exec wc -l {} /dev/null \;

관련 정보