Shell 脚本用于查找目录中所有类型的文件及其数量

Shell 脚本用于查找目录中所有类型的文件及其数量

我想编写一个shell scriptalias来查找目录中不同类型文件的数量。例如,脚本的示例输出应为:

*.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}'以显示扩展后的计数。

相关内容