通过 bash 查找特定文件的数量

Finding the number of specific files via bash

在下一个 Unix 命令上填写点,像这样,标准输出给出了每个文件类型的概览以及 /dev 目录中的文件数量。 在此概览中,所有文件类型必须按找到的特定类型文件的数量降序排列。如果存在具有相同数量文件的文件类型,则它们必须按字母顺序列出。

$ find /dev -ls | …
  7 c
  6 l
  3 d

提示:

已经用 find-command 给出的部分,也在目录中找到隐藏文件。

借助 cut-command,您可以 select 一行的特定部分,最重要的两个选项是 -f 和 -d。第一个将行拆分为列。默认情况下,使用制表符。使用选项 -d 您可以指定自定义分隔符。

tr、sort 和 uniq 可能会有用。

我目前拥有的:

find /dev -ls | tr \t " " | tr -s " " | cut -f3 -d ' ' | cut -c-1 | sort | uniq -c | sort -r

但这似乎行不通...

提前致谢。

我喜欢在这种情况下使用 awk 而不是 tr

 find /dev -ls | gawk '{ c=substr(,1,1) ; x[c]++ } END { for(y in x) print x[y] " " y }' | sort -n