Você também tem que especificar a coluna final:
$ sort -k1,1 text.txt
a 1
a 11
A 1
Para citar a página man do tipo GNU :
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
O ordenamento é ordenado de forma diferente do que seria de esperar. Eu tenho esse arquivo, chame de text.txt
:
a 1
A 1
a 11
(o espaço é sempre um \t
)
Eu quero classificá-los em ordem alfabética pela primeira coluna. No entanto, quando eu faço
sort -k 1 text.txt
tudo que eu tenho é o arquivo text.txt, não classificado. Se eu fizer isso pela notação + -
obsoleta, o que significa
sort +0 -1 text.txt
funciona como deveria, o que significa que recebo esta saída:
a 1
a 11
A 1
Esse comportamento estranho ocorre somente quando eu tenho linhas que diferem apenas por maiúsculas e minúsculas. O que estou fazendo errado?
Você também tem que especificar a coluna final:
$ sort -k1,1 text.txt
a 1
a 11
A 1
Para citar a página man do tipo GNU :
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
Você certamente encontrou um bug em sort
! Se você não tivesse espaços no arquivo, não haveria como classificá-lo corretamente:
$ cat aaa
a1
A1
a11
$ sort aaa
a1
A1
a11
$ sort -k1,1 aaa
a1
A1
a11
Ainda mais visível com o seguinte:
$ cat bbb
A B b 0
a B b 0
A b b 1
$ sort bbb
a B b 0
A B b 0
A b b 1
$ sort -k1,2 bbb
a B b 0
A b b 1
A B b 0