classificar em campos delimitados por canal não se comportando conforme o esperado

Considere este pequeno arquivo de texto:

ab
a

Se o executarmos através do tipo (1), obteremos

a
ab

porque é claroa vem antesab.

Mas agora considere este arquivo:

ab|c
a|c

Se passarmos por issosort -t'|', novamente esperamosa ordenar antesab, mas não! (Experimente na sua versão do Unix e veja.)

O que eu acho que está acontecendo aqui é que o-t opção parasort não érealmente delimitar campos - pode estar mudando a maneira (digamos) que o início do campo 2 seja encontrado, mas não está mudando a maneira como o campo 1termina. a|c classifica depoisab|c Porque'|' vem depois'b' em ASCII. (É como se o-t'|' argumento é ignorado, porque você obtém o mesmo resultado sem ele.)

Então isso é um bug nosort ou na minha compreensão disso? E existe uma maneira de classificar o primeiro campo delimitado por canal corretamente?

Esta pergunta surgiu na minha tentativa de responder a outra pergunta SO,Instrução de associação omitindo entradas .

questionAnswers(1)

yourAnswerToTheQuestion