124 votes

Trier le fichier CSV par priorité de colonne à l’aide de la commande « sort »

J'ai un fichier csv et j'aimerais le trier par priorité de colonne, comme "ordre par". Par example:

 3;1;2
1;3;2
1;2;3
2;3;1
2;1;3
3;2;1

Si cette situation était le résultat d'un "select", le "order by" serait le suivant : order by column2, column1, column3 - le résultat serait :

 2;1;3
3;1;2
1;2;3
3;2;1
1;3;2
2;3;1

J'aimerais savoir comment obtenir ce même résultat en utilisant la commande "sort" sur Unix.

200voto

Charlie Martin Points 62306
sort --field-separator=';' --key=2,1,3

27voto

SamK42 Points 502

La réponse de Charlie ci-dessus n'a pas fonctionné pour moi sur Cygwin (sorter la version 2.0, GNU textutils), ce qui suit :

 sort -t"," -k2 -k1 -k1

-7voto

Daniel Iversen Points 168

.. et si quelqu’un a suivi la solution « trier » mais veut maintenant obtenir plus que l’entrée unique par ligne (c’est-à-dire le nombre X supérieur d’entrées uniques), une fois que vous avez trié le fichier en utilisant « trier », vous pouvez utiliser une petite application que j’ai créée ici:

https://github.com/danieliversen/MiscStuff/blob/master/scripts/findTopUniques.java

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X