find . -type f -name '*.*' -exec sh -c 'echo ${0##*.}' {} \; | sort | uniq -c | sort -nr
O echo ${0##*.}
fornece a extensão do arquivo. Nós canalizamos a saída para sort
e depois contamos as linhas exclusivas com uniq
.
Algumas adições:
- Como a saída de
uniq
não é classificada de acordo com o número de ocorrências, você precisará enviar novamente para uma classificação numérica (-nr
), se desejar classificá-la. - Se você quiser pesquisar somente o diretório atual, adicione
-maxdepth 1
ao comandofind
. - Canalize em
awk '{print $2, $1}'
para mostrar a contagem após as extensões.