Osx

wc -l 計算文件夾和子文件夾中所有txt文件的行數

  • May 24, 2019

我在幾個子文件夾中有幾百個 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 up 並沒有產生任何錯誤。在執行 MacOS 的 Mac 上使用終端,其行為在很大程度上類似於 BSD。

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

如果目錄結構是不變的,那麼萬用字元可以安全地擴展列表(假設沒有太多超出命令行長度的結果文件):

wc -l main/*/*.txt

或者

wc -l */*/*.txt

…取決於您從哪裡開始以及您想要包含的內容。

引用自:https://unix.stackexchange.com/questions/520900