[Shell] commande sort pour fichier txt

commande sort pour fichier txt [Shell] - Shell/Batch - Programmation

Marsh Posté le 27-09-2007 à 08:52:43    

Bonjour à vous !
 
J'ai un fichier avec 8 colonnes (ou champs) de valeurs et je veux le trier en mettant la colonne 1 et la colonne 3 par ordre croissant.  
 
j'ai fait : sort -k1,3 -n fichierentrée -o fichiersortie
 
Si vous regardez un extrait du "fichiersortie" en-dessous, la 1ère colonne est triée par ordre croissant mais dans la 3ème, il ya quelques "erreurs" (ou oublis) de tri du type : ... 109, 110 puis 11, 1, 111 ...    
sort tient compte des espacements ? là c'est le 1er chiffre qui est trié !  
il me manque surement une option pour sort ... que je ne trouve pas ...
 
   1  2001  105        3.145      11.435       5.855       0.000       0.669
   1  2001  106       11.106      10.607       2.193       0.000       2.142
   1  2001  107       13.445       9.649      -0.932       0.000       0.775
   1  2001  109        4.141       9.243       0.185       0.000      -1.220
   1  2001  109        8.754       7.534       0.808       0.000      -0.127
   1  2001  110        6.137       7.133      -0.062       0.000       0.506
   1  2001   11        0.673       9.668       5.820       0.308      -1.742
   1  2001    1        1.140       8.036       2.430       0.057       0.862
   1  2001  111        8.625       8.681      -1.469       0.000       1.191
   1  2001  113       14.752      13.402       5.150       0.000      -0.567
   1  2001  113       16.250      12.041      -1.327       0.000       1.391
 
Merci bien  :jap:  

Reply

Marsh Posté le 27-09-2007 à 08:52:43   

Reply

Marsh Posté le 27-09-2007 à 09:11:16    

Normallement l'option "-n" aurait du s'appliquer
 
Essaye ceci (non testé): sort +n0 +n2 fichierentrée -o fichiersortie
Syntaxe "+col" (le n° de la 1ère colonne étant 0) au lieu de "-kcol" et en demandant à ce que la numéricité soit appliquée à la colonne en question


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 27-09-2007 à 09:19:33    

C'est presque ça, j'ai fait :
sort -n +0 +2 fichierentrée -o fichiersortie
 
Merci bien !!

Reply

Marsh Posté le 27-09-2007 à 09:24:12    

MarieNo a écrit :

C'est presque ça, j'ai fait :
sort -n +0 +2 fichierentrée -o fichiersortie
 
Merci bien !!


 
Tiens ? on dirait que l'option "-n" est à mettre avant ?
Si c'est ça alors la commande "sort -n -k1,3" devrait fonctionner aussi...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 27-09-2007 à 09:36:39    

la commande "sort -n -k1,3" ne marche pas ...
je ne sais pas pourquoi .. je n'ai jamais utilisé "sort" avant aujourd'hui, je ne peux pas te dire pourquoi la 1ère marche ! en tout cas, ça m'arrange :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed