我已经有了Linux系列的这一行。
find . -type f -name '*.txt' -exec ls -l {} \;
它正在获取目录中的所有TXT文件。但我不能做的和我想要做的是,读取一个目录中子文件夹上的所有.txt文件。
例如:ParentTxtFolder - > ChildTxtFolder - > Txtfolder1,Txtfolder2,Txtfolder3。每个Txtfolder它包含.txt文件。
所以我想要的是,扫描Txtfolder1并计算.txt文件。
如果可以输出,则预期输出:
Txtfolder1 - 14
Txtfolder2 - 10
Txtfolder3 - 18
我真的坚持这个。提前谢谢!
答案 0 :(得分:0)
$ find . -type f -name '*.txt' | awk '$NF=""; {a[$0]++} END{for( i in a) print i, a[i]}' FS=/
. 2
. foo 1
. foo bar 2
在这个例子中,有2个文件,1个用于foo,2个用于foo / bar。此输出不是完全您想要的,但不清楚差异是否相关。
答案 1 :(得分:0)
你能做到的一种方法是:
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