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 .