Uma especificação de chave -k1,2
especifica uma chave que começa no início da primeira coluna (inclui os espaços em branco à esquerda como o separador de coluna padrão é a transição de um não-branco para um em branco) e termina no final da segunda coluna.
É importante perceber que é apenas uma chave . Se você precisar de duas chaves, precisará de duas opções -k
. Ao classificar, sort
irá comparar a string "1 50"
com "1 1000"
numericamente. Para uma comparação numérica, essas cadeias são convertidas em números considerando a parte principal (ignorando espaços em branco à esquerda) que se parece com um número válido. Então, vamos comparar 1
e 1
. Como são iguais, sort
reverterá para a classificação de fall-back para determinar os laços, o que é uma comparação léxica da linha inteira.
Com -n -k1,1 -k2,2
, sort
compara "1"
com "1"
e, em seguida, como é um empate, considera a segunda chave ( " 50"
vs " 1000"
). Como é uma classificação numérica, -n -k1 -k2
também funcionaria (onde -k1
especifica uma chave que começa no primeiro campo e termina no final da linha, igual à linha completa).