Uma maneira ... (editada para evitar contar a mesma palavra duas vezes)
$ echo "my nice name is Mike Meller" | tr ' ' '\n' | sort -f | uniq -i | sed -nr 's/^([a-z]).*/\U/Ip' | uniq -c | sort -r
3 M
2 N
1 I
-
tr ' ' '\n'
muda espaços para novas linhas -
sort -f
classifica as linhas para que as mesmas entradas estejam juntas, mesmo se o caso for diferente -
uniq -i
remove palavras duplicadas, ignorando o caso -
sed -nr 's/^([a-z]).*/\U/Ip'
remove tudo, menos a primeira letra, altera todas as letras para maiúsculas e não imprime a linha se não começar com uma letra -
uniq -c
conta as linhas que são as mesmas -
sort -r
sort descendente
(substitua echo "my nice name is Mike Meller"
por cat name-of-your-file
)