Como a opção de coluna de comando de classificação é manipulada

2

Eu tenho um arquivo como

1.2.3.4
1.1.1.1
4.5.6.7
1.1.3.5

Quando dei

sort -t. -k3 inp3

1.1.1.1
1.2.3.4
1.1.3.5
4.5.6.7

e quando eu dei

sort -t. -k3,3 inp3
1.1.1.1
1.1.3.5
1.2.3.4
4.5.6.7

segunda e terceira colunas diferem. Eu pude ver muitas perguntas e respostas sobre essa opção k. É correto que quando eu dou -k3, desde as 3 colunas para

1.1.3.5
1.2.3.4

são as mesmas 4ª colunas consideradas.

Que diferença faz quando dá

sort -n -t. -k3 inp3
    
por user3539 08.02.2015 / 12:31

1 resposta

1

O uso de -k é:

    -k field_start[type][,field_end[type]]

Se o campo final for omitido, todos os campos do campo inicial serão usados. Em qualquer caso, os campos secundários são usados para desempate em ordem.

Então, quando você faz -k3 , os campos 3 e 4 são usados para classificação, com 4 para desempate. Com -k3,3 , somente o campo 3 é usado - os outros são ignorados. Então você está correto em sua conclusão.

-n especificado por si só significa que todos os campos são tratados como números e classificados de acordo. Alfabeticamente (em vez disso, lexicograficamente), 2 vem depois de 102 , numericamente é o contrário. Veja a página de manual para saber o que significa quando um campo é tratado como um número .

    
por 08.02.2015 / 12:46

Tags