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 \;

相关内容