Versuchen Sie Folgendes (nicht sicher, ob es der beste Weg ist, aber es funktioniert):
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
Es funktioniert wie folgt:
- Alle Dateien im aktuellen Ordner finden
- Druckt Erweiterungen von Dateien, falls vorhanden
- Erstelle eine einzigartige sortierte Liste
Keine Notwendigkeit für die Leitung zu sort
, awk kann alles:
find . -type f | awk -F. '!a[$NF]++{print $NF}'
Rekursive Version:
find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort -u
Wenn Sie Summen wollen (wie viele Male die Erweiterung gesehen wurde):
find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort | uniq -c | sort -rn
Nicht rekursiv (einzelner Ordner):
for f in *.*; do printf "%s\n" "${f##*.}"; done | sort -u
Ich habe dies auf diesem Forumsbeitrag basiert, die Anerkennung sollte dorthin gehen.