Você também pode classificar o caractere:
tr -cd a\n <file | paste - ./file | LC_ALL=C sort -rk1,1 | cut -f2-
Veja como fica seu exemplo depois de ser tr
anslated e paste
d antes de ser canalizado para sort
:
aa baseball
aaa aardvark
aaaaaaaaaa a man a plan a canal panama
a cat
a bat
bill
Em seguida, sort
obtém e, todas as coisas sendo iguais, classifica as chaves mais curtas antes das chaves mais longas, mas em -r
everse, e sua saída é ...
aaaaaaaaaa a man a plan a canal panama
aaa aardvark
aa baseball
a cat
a bat
bill
... e cut
simplesmente desaparecem na primeira guia.
a man a plan a canal panama
aardvark
baseball
cat
bat
bill