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