linux - 列出目录中具有扩展名的所有文件,并给出 Unix 中每个此类文件的计数

标签 linux shell unix ksh

我需要任何特定目录 (/home/docs/) 中的所有文件,以及根据扩展名分类的每个此类文件的计数。

输出应该是这样的:

.mp3 - 10 
.ksh - 15 
.doc - 20 
.xls - 3

等等

最佳答案

我会这样做:

ls -1|awk -F'.' 'NF>1{a[$NF]++}END{for(x in a)print x,a[x]}'

这将排除没有的目录和文件名,也使用单个 awk 进程。

关于linux - 列出目录中具有扩展名的所有文件,并给出 Unix 中每个此类文件的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181681/

相关文章:

linux - 使用 perl one-liner 解析电子邮件列表

bash:意外标记附近的语法错误

java - Runtime.exec(cmd) 的用户

java - 删除包含另一个文件中不存在的数据的文件行

java - JNA 使用 Unix Stat 导致 UnsatisfiedLinkException

linux - Ubuntu 上的 Autoit key 重新映射(Ubuntu 上的第 2 天)?

linux - 运行 awk 命令删除最后一列后保留分隔符 '\t'

linux - Qt Creator CONFIG(调试、发布)开关不起作用

shell - 如何减慢拖尾日志的速度

linux - $(()) 和 expr 有什么区别?