获取目录中不同文件结尾的列表(UNIX shell)

获取目录中不同文件结尾的列表(UNIX shell)

我有一个目录,里面有许多不同格式的图像文件。我想查看该目录中所有不同文件后缀的列表,以便查看存在哪些类型的图像格式。因此,假设只有pnggifjpg文件,我想要的输出将如下所示:

png
gif
jpg

ls我知道如何使用和获取所有文件结尾的列表 cut,但我不知道如何使其仅包含唯一条目。有没有办法只使用 shell 工具来做到这一点,还是我必须编写一个小的 python 脚本或类似脚本?

答案1

$ ls *.* | nawk -F\. '{print $(NF);}' | sort | uniq

如果你想知道每种类型有多少个:

$ ls *.* | nawk -F\. '{print $(NF);}' | sort | uniq -c

答案2

天无绝人之路。

function alsoHidden {
    find . -maxdepth 1 -type f -printf '%f\n';
}
$ alsoHidden | sed -E 's/.*\.(.*)/\1/' | sort -u

$ alsoHidden | tr . / | xargs -I% basename % | sort -u

$ alsoHidden | awk -F. ' !a[$NF] { print $NF; a[$NF]++ }'

相关内容