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).