是否有unix命令来计算目录中不同文件类型的数量?

时间:2013-09-23 03:44:48

标签: file unix cygwin

我使用ls | wc -1命令来计算目录中的文件数。是否有命令来计算不同文件类型的数量?假设该目录有2个文本文件和一个jpeg,输出应为2(text和jpeg是不同的文件类型)。

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

没有一个命令(尽管你当然可以创建一个!)来做你想做的事,但是获得你的结果非常简单。确切地决定如何区分文件类型(文件扩展名,文件内容,名称等),然后使用常用工具来计算结果。如果您对file命令打印的结果感到满意,可能就像这样简单:

file * | awk '{$1=""}1' | sort -u | wc -l

awk过滤掉输出的第一列(文件名),管道中的其余进程计算结果。这是脆弱的,如果你的任何文件名都包含空格,它会中断,所以你可能想在:中使用awk字段分隔符(在这种情况下,解决方案很脆弱,如果任何文件名包含,则会失败)冒号。)

答案 1 :(得分:-1)

使用file查找文件类型。通过grep管道以过滤掉图片等内容,然后执行wc -l