Ordre de tri inversé d'un fichier multicolumn dans BASH

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 doit être triée pour la deuxième colonne, mais à partir du plus grand nombre (dans ce cas 6) pour le plus petit. J'ai essayé avec

sort +1 -2 file.dat

mais ça me donne l'ordre inverse.

Les résultats devraient être:

1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
21
demandé sur Chris Seymour 2013-01-02 14:58:33

3 réponses

sort -nrk 2,2

le truc.

n numérique (tri, r pour l'ordre inverse et k 2,2 pour la deuxième colonne.

39
répondu Danstahr 2013-01-02 11:03:19

Avez-vous essayé -r ? À partir de la page de manuel de:

- R, -- reverse

          reverse the result of comparisons
8
répondu Brian Agnew 2013-01-02 11:01:29

comme la plupart des versions desort-r option si le vôtre ne pas essayer 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 dans le sens inverse

3
répondu Chris Seymour 2013-01-02 11:12:21