web-dev-qa-db-fra.com

La commande de tri ne fonctionne pas comme prévu sur les nombres

Voici mon list.txt:

a    100
b    300
A    50
e    75
1    10

J'ai lancé la commande ci-dessous:

sort -k2,2 list.txt

C'est ce que j'ai eu:

1    10
a    100
b    300
A    50
e    75

J'essaie de ne trier que la deuxième colonne. Selon Wikipedia, ma commande ci-dessus devrait me donner le résultat ci-dessous.

a 10
b 50
A 75
e 100
1 300

Est-ce que je manque quelque chose?

https://en.wikipedia.org/wiki/Sort_ (Unix)

4
Mint.K

Par défaut, sort trie caractère par caractère dans ordre lexicographique , en fonction des paramètres régionaux en vigueur séquence de classement . Ainsi, dans votre exemple, 100 est trié après 10 mais avant 50 parce que 1 est toujours trié avant 5.

Pour trier par ordre numérique, vous devez ajouter le spécificateur n.

   -n, --numeric-sort
          compare according to string numerical value

par exemple.

$ sort -k2,2n list.txt
1   10
A   50
e   75  
a   100 
b   300
16
steeldriver