我想编写一个shell script
或alias
来查找目录中不同类型文件的数量。例如,脚本的示例输出应为:
*.h 20
*.c 40
*.cpp 10
Makefile 3
答案1
find . -type f -name '*.*' -exec sh -c 'echo ${0##*.}' {} \; | sort | uniq -c | sort -nr
给出echo ${0##*.}
文件的扩展名。我们将输出通过管道传输到sort
,然后用 计算唯一行数uniq
。
一些补充:
- 由于的输出没有根据出现次数排序,如果您希望对其进行排序,
uniq
则必须再次通过管道输入数字排序( )。-nr
- 如果您只想搜索当前目录,请添加
-maxdepth 1
到您的find
命令中。 - 管道插入
awk '{print $2, $1}'
以显示扩展后的计数。