Вы также можете просто отсортировать по символу:
tr -cd a\\n <file | paste - ./file | LC_ALL=C sort -rk1,1 | cut -f2-
Вот как выглядит ваш пример после того, как tr
преобразовали и вставили
d перед тем, как он будет передан в sort
:
aa baseball
aaa aardvark
aaaaaaaaaa a man a plan a canal panama
a cat
a bat
bill
Затем sort
получает его и, при прочих равных условиях, сортирует более короткие ключи перед более длинными, но в -r
everse, и его результат ...
aaaaaaaaaa a man a plan a canal panama
aaa aardvark
aa baseball
a cat
a bat
bill
... и разрезают
просто полосы до первого выступа.
a man a plan a canal panama
aardvark
baseball
cat
bat
bill