我有一个包含多个子目录的目录,我希望提取所有这些子目录中存在的唯一文件扩展名列表。
有没有一种简单的方法可以从命令行执行此操作?
感谢。
答案 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}'
获取所有扩展名并打印出来。