Quando você especifica um campo de classificação que não existe, a chave de classificação ficará vazia para cada comparação que o sort
fizer. Isso significa que as chaves irão comparar igual, sempre. Isso aciona uma parte da especificação padrão de sort
que diz que o linha inteira deve ser usada como chave de classificação e que nenhuma das opções -d
, -f
, -i
, -n
ou -k
permaneça em vigor.
Isso, por sua vez, significa que o comando será idêntico ao
sort -r nos
que faz uma classificação lexicográfica reversa dos dados (o -t=
não tem efeito aqui). 997
precede 1000
na ordem lexicográfica reversa, pois 9
é solicitado antes de 1
.
O bit relevante do padrão POSIX:
-k keydef
[...]
Except when the
-u
option is specified, lines that otherwise compare equal shall be ordered as if none of the options-d
,-f
,-i
,-n
, or-k
were present (but with-r
still in effect, if it was specified) and with all bytes in the lines significant to the comparison. The order in which lines that still compare equal are written is unspecified