列出目录中所有带扩展名的文件,并给出 Unix 中每个此类文件的数量
list all files with extensions in a directory and give count of each such files in Unix
我需要任何特定目录 (/home/docs/) 中的所有文件,每个此类文件的数量按其扩展名分类。
输出应该是这样的:
.mp3 - 10
.ksh - 15
.doc - 20
.xls - 3
等等
ls | awk -F . '{print $NF}' | sort | uniq -c | awk '{print ,}'
我会做:
ls -1|awk -F'.' 'NF>1{a[$NF]++}END{for(x in a)print x,a[x]}'
这将排除没有 dot
的目录和文件名,也使用单个 awk 进程。
$ find . -name "*?.*" -type f -printf "%f[=10=]" | xargs -0 -I"--" sh -c 'fn="--" ; echo "${fn##*.}"' | sort | uniq -c | awk '{print ,"-",}'
我需要任何特定目录 (/home/docs/) 中的所有文件,每个此类文件的数量按其扩展名分类。
输出应该是这样的:
.mp3 - 10 .ksh - 15 .doc - 20 .xls - 3
等等
ls | awk -F . '{print $NF}' | sort | uniq -c | awk '{print ,}'
我会做:
ls -1|awk -F'.' 'NF>1{a[$NF]++}END{for(x in a)print x,a[x]}'
这将排除没有 dot
的目录和文件名,也使用单个 awk 进程。
$ find . -name "*?.*" -type f -printf "%f[=10=]" | xargs -0 -I"--" sh -c 'fn="--" ; echo "${fn##*.}"' | sort | uniq -c | awk '{print ,"-",}'