Linux 框,计算目录中每个子文件夹的文件

Linux box, counting files each subfolder in directory

我已经为 Linux 盒子准备了这条线。

find . -type f -name '*.txt' -exec ls -l {} \;

正在获取目录中的所有 TXT 文件。但是我不能做,我想做的是,读取一个目录下子文件夹中的所有.txt文件。

例如:ParentTxtFolder --> ChildTxtFolder --> Txtfolder1、Txtfolder2、Txtfolder3。每个 Txt 文件夹包含 .txt 文件。

所以我想要的是,扫描 Txtfolder1 并计算 .txtfiles。

如果此输出是可能的,则预期输出:

Txtfolder1 - 14
Txtfolder2 - 10
Txtfolder3 - 18

我真的被这个问题困住了。提前致谢!

$ find . -type f -name '*.txt' | awk '$NF=""; {a[[=10=]]++} END{for( i in a) print i, a[i]}' FS=/
.  2
. foo  1
. foo bar  2

在此示例中,. 中有 2 个文件,foo 中有 1 个文件,foo/bar 中有 2 个文件。此输出不完全您想要的,但不清楚差异是否相关。

一种方法是这样的:

for d in `find . -type d` ; do echo -n "$d: " ; find "$d" -type f -depth 1 -name \*.txt | wc -l ; done

或更简洁:

for d in `find . -type d`   # for each directory
  do
    echo -n "$d: "          # print directory name
    find "$d" -type f -depth 1 -name \*.txt | wc -l
  done                      # followed by count of .txt files in directory