Zkuste toto (nejsem si jistý, jestli je to nejlepší způsob, ale funguje to):
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
Funguje to následovně:
- Najít všechny soubory z aktuální složky
- Vytiskne příponu souborů, pokud existují
- Vytvořte jedinečný seřazený seznam
Není třeba, aby potrubí sort
, awk to všechno umí:
find . -type f | awk -F. '!a[$NF]++{print $NF}'
Rekurzivní verze:
find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort -u
Pokud chcete součty (kolikrát bylo rozšíření vidět):
find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort | uniq -c | sort -rn
Nerekurzivní (jedna složka):
for f in *.*; do printf "%s\n" "${f##*.}"; done | sort -u
Založil jsem to na tomto příspěvku na fóru, tam by měl být kredit.