J'ai le fichier suivant:
1 2 3
1 4 5
1 6 7
2 3 5
5 2 1
et je veux que le fichier soit trié pour la deuxième colonne mais du plus grand nombre (dans ce cas 6) au plus petit. J'ai essayé avec
sort +1 -2 file.dat
mais cela me donne l'ordre inversé.
Les résultats devraient être:
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
sort -nrk 2,2
fait l'affaire.
n pour le tri numérique, r pour l'ordre inverse et k 2,2 pour la deuxième colonne.
Avez-vous essayé -r? De la page de manuel :
-r, --reverse
reverse the result of comparisons
Comme mentionné, la plupart des versions de sort
ont le -r
option si la vôtre n'essaye pas tac
:
$ sort -nk 2,2 file.dat | tac
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
$ sort -nrk 2,2 file.dat
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
tac - concaténer et imprimer des fichiers en sens inverse