여러 하위 폴더에 수백 개의 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 \;