Réponses:
find . -type f -name '*.*' -exec sh -c 'echo ${0##*.}' {} \; | sort | uniq -c | sort -nr
le echo ${0##*.}
vous donne l'extension du fichier. Nous canalisons la sortie vers sort
puis compter les lignes uniques avec uniq
.
Quelques ajouts:
uniq
n'est pas trié en fonction du nombre d'occurrences, vous devrez rediffuser un tri numérique ( -nr
) si vous voulez le trier. -maxdepth 1
à ton find
commander. awk '{print $2, $1}'
pour montrer le compte après les extensions. -name '*.*'
l'option restreint find
aux fichiers avec des extensions seulement. Si vous laissez cela de côté, vous obtiendrez un nombre de 1 pour chaque fichier, ce qui risque de ne pas être idéal.
sh
processus prend un peu plus de temps d'exécution, filtrant les résultats avec find
sera un peu plus rapide, je suppose.