S'il vous plaît, ne pensez pas que c'est une répétition de la question "Tri des données alphanumériques sous Unix" ... J'ai regardé les autres réponses, et je pense que mon cas est un peu différent!
J'ai des données comme celle-ci:
A 192
D 112
D 188
C 091
A 281
B 919
... Et je veux trier la première colonne 1 (par ordre alphabétique), puis par colonne 2 (par ordre numérique). J'ai essayé d'utiliser:
sort -n -k1,2
... Mais cela m'a donné un tri correct pour le premier champ, mais ensuite un mauvais tri pour le deuxième champ (1000,1002,1003,10,1 ... au lieu de 1,10,1000,1002,1003).
Quelqu'un peut-il suggérer comment trier ces deux colonnes comme je le voudrais?
Essayez d'utiliser comme ceci: -
sort -k1,1 -k4,4n
- -n: effectue le tri du programme en fonction de la valeur numérique
- -k opts: trie les données/champs en utilisant le numéro de colonne donné. Par exemple, l'option -k 2 a fait trier le programme en utilisant le second
colonne de données. L'option -k 3,3n -k 4,4n trie chaque colonne. Première
il triera la 3ème colonne puis la 4ème colonne.
Cela devrait fonctionner:
sort -t "," -k1,1 -k2n,2 file