从目录中提取文件扩展名的完整列表

时间:2014-03-25 16:47:49

标签: bash unix command-line

我有一个包含多个子目录的目录,我希望提取所有这些子目录中存在的唯一文件扩展名列表。

有没有一种简单的方法可以从命令行执行此操作?

感谢。

2 个答案:

答案 0 :(得分:2)

如果你对“扩展名”的定义是“最后一个点之后的任何内容,或者什么都没有”那么可能就像

find dir -name '*.*' -print | rev | cut -d . -f1 | rev

导入| sort -u以获取唯一的扩展名。

对于带有换行符的文件名等,这不是很强大。

“文件扩展名”的概念在Unix上没有很好地形式化,但如果你正在遍历,例如

表示Web服务器的文件(通常依赖于扩展方案)

答案 1 :(得分:1)

你可以这样做:

find /your/dir -type f | awk -F. '{a[$NF]} END{for (i in a) print i}'
  • find /your/dir -type f找到文件
  • awk -F. '{a[$NF]} END{for (i in a) print i}'获取所有扩展名并打印出来。