Você pode usar uma combinação de sed e sort :
$ echo "Johnny's penguin, (Tuxie), likes the following foods: French fries, and beef." |
> sed 's/./&\n/g' | LC_COLLATE=C sort -u | tr -d '\n'
'(),.:FJTabcdefghiklnoprstuwxy
sort faz ordenação lexicográfica, então veja man 7 ascii para ver como os caracteres serão ordenados.
Explicação:
-
sed 's/./&\n/g'- adiciona uma nova linha após cada caractere, poissort(geralmente) faz a classificação linha por linha -
LC_COLLATE=Cdefine o estilo de agrupamento comoC(consulte O que significa “LC_ALL = C 'fazer? ) -
sort -u: classifica a entrada e imprime somente as entradas exclusivas -
tr -d '\n'exclui todas as novas linhas extras.
Se você quiser manter apenas caracteres visíveis:
$ echo "Johnny's penguin, (Tuxie), likes the following foods: French fries, and beef." |
> tr -cd '[[:graph:]]' | sed 's/./&\n/g' | LC_COLLATE=C sort -u | tr -d '\n'
-
tr -cd '[[:graph:]]'exclui tudo, exceto os caracteres visíveis.