获取目录中的所有扩展名及其各自的文件数

den*_*zer 15 linux find extension

获取目录的所有扩展名:简单。获取特定扩展名的文件计数:简单。

但是获取所有文件扩展名及其各自的文件数是在暗指我。

例如。

+ dir
 + abc.txt
 + def.txt
 + abc.pdf
 * def.pov
Run Code Online (Sandbox Code Playgroud)

应该返回如下内容:

.txt 2
.pdf 1
.pov 1
Run Code Online (Sandbox Code Playgroud)

这个练习的目的是我想找出某个目录中流行的文件扩展名。

提前致谢

bin*_*dbn 48

/var/cache$ sudo find ./ -type f | grep -E ".*\.[a-zA-Z0-9]*$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
      1 .6
      1 .cache
      1 .noconf
      1 .php
      1 .sl
      2 .bin
      2 .el
      2 .tdb
      4 .baseA
      4 .baseB
      4 .dat
      4 .DB
     27 .db
    221 .deb
Run Code Online (Sandbox Code Playgroud)

这是解释:

find ./ -type f
Run Code Online (Sandbox Code Playgroud)

只查找文件,不查找目录

grep -E ".*\.[a-zA-Z0-9]*$"
Run Code Online (Sandbox Code Playgroud)

带扩展名的过滤文件

sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/'
Run Code Online (Sandbox Code Playgroud)

删除路径和文件名,只保存扩展名

sort | uniq -c | sort -n
Run Code Online (Sandbox Code Playgroud)

排序、uniq 和排序