Pages : 1
#1 Le 12/10/2010, à 17:37
- Silmarillion
Trier un fichier
Bonjour à tous
J'ai un DM à faire sur UNIX, et je bloque sur la toute dernière question (forcément).
Il s'agit de trier le fichier suivant ( :
12 Paris poires 3,5
8 Nice oranges 5,4
7 Paris raisins 12,2
45 Angers pommes 3
16 Lyon poires 3,8
63 Lyon raisins 8
56 Lyon oranges 5,8
63 Angers pommes 1,5
66 Angers oranges 5,4
4 Rennes bananes 10
78 Nice pommes 3,1
14 Rennes poires 4
87 Angers poires 3,9
11 Nice poires 3,3
56 Angers raisins 11,5
78 Paris bananes 8,3
8 Rennes raisins 14
99 Nice raisins 11,6
45 Lyon pommes 3,3
78 Nice bananes 8,6
48 Lyon bananes 8,3
78 Lyon bananes 8,1
Mais attention : il faut le trier selon la troisième colonne, et en cas d'égalité, selon la deuxième. Je me doute qu'il faut un sort et un cut.
Je sais isoler la troisième colonne par un cut, puis la trier, mais du coup je perds le reste... j'ai rien trouvé dans les man de cut et sort. peut etre qu'il faut utiliser une autre commande? si vous pouviez me donner un indice ce serait sympa
Hors ligne
#2 Le 12/10/2010, à 17:43
- AnsuzPeorth
Re : Trier un fichier
Bjr,
Tu as bien lu le man sort
-k, --key=POS1[,POS2]
start a key at POS1, end it at POS2 (origin 1)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 12/10/2010, à 17:46
- Silmarillion
Re : Trier un fichier
je venais de le trouver! mais avec 'info sort' parce que le man est pas clair, j'étais passé à coté effectivement.
Merci bien pour la réponse en tout cas
Hors ligne
#4 Le 12/10/2010, à 18:07
- Silmarillion
Re : Trier un fichier
Yihaaaa! J'ai un peu galéré, parce qu'il faut trier selon la troisième colonne, PUIS la deuxième. Mais un $ sort -k 3.1,3.0 -k 2.1,2.0 fruits fonctionne.
En revanche j'ai pas compris les exemples suivants : sort -k 3b et sort -k 2.2n
A quoi servent le b et le n????
Hors ligne
#5 Le 12/10/2010, à 18:22
- AnsuzPeorth
Re : Trier un fichier
sort -k 3.2
Ne suffit pas ?
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#6 Le 12/10/2010, à 18:28
- Silmarillion
Re : Trier un fichier
non sort 3.2 tri à partir du 2ème caractère du troisième champ.
et sort 3,2 ne fonctionne pas.
meme sort -k 3 -k 2 ne fonctionne pas.
Hors ligne
#7 Le 12/10/2010, à 18:56
- AnsuzPeorth
Re : Trier un fichier
non sort 3.2 tri à partir du 2ème caractère du troisième champ.
J'avais pas lu le man en entier
...!?
EDIT:message modifier, j'ai pas les yeux en face des trous
Dernière modification par AnsuzPeorth (Le 12/10/2010, à 18:58)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#8 Le 12/10/2010, à 20:04
- ehmicky
Re : Trier un fichier
Yihaaaa! J'ai un peu galéré, parce qu'il faut trier selon la troisième colonne, PUIS la deuxième. Mais un $ sort -k 3.1,3.0 -k 2.1,2.0 fruits fonctionne.
En revanche j'ai pas compris les exemples suivants : sort -k 3b et sort -k 2.2n
A quoi servent le b et le n????
En fait, je crois que rajouter des lettres à la fin permet de faire comme si l'option avec cette lettre était activée, mais seulement pour le champs indiqué : donc option -b (relative aux leading blanks) activée pour le tri du troisième champs et option -n (relative au tri numérique et non alphabétique) activée pour le tri du deuxième champs. Rajoute un "r" (reverse) à la fin d'un champs et tu vas comprendre vite. C'est d'ailleurs un point assez puissant de cet commande d'ailleurs je trouve.
Maintenant, c'est moi-même qui ne comprends plus sort -k, parce que je pensais que la notation -k 3.1,3.6 signifiait par exemple "Trier en fonction du troisième champs, à partir de son premier caractère jusqu'à son 6ème caractère." En sachant que la deuxième partie après la virgule est facultative et est par défaut la fin du champs (troisième champs ici). Mais je vois que tu utilises 3.0 et 2.0, à quoi fait référence ce 0 ? Merci de m'expliquer si tu vois ce que je veux dire
Dernière modification par ehmicky (Le 12/10/2010, à 20:07)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#9 Le 13/10/2010, à 08:45
- Silmarillion
Re : Trier un fichier
merci pour l'explication
Le 0 signifie aussi "jusqu'a la fin du champs". Donc c'est vrai que ça revient au meme de ne rien mettre
Hors ligne
#10 Le 13/10/2010, à 08:58
- Postmortem
Re : Trier un fichier
Bonjour,
En fait, cela aurait suffit :
sort -k 3,3 -k 2,2 fruits
Il faut préciser 3,3 par exemple car sinon, le tri se fait jusque la fin de la ligne, dans ce cas il se fait que sur le 3ème champ.
Par contre, pas besoin de préciser 3.1,3.0 car pour le début de la clé de tri, par défaut c'est .1 et pour la fin, c'est .0 (.0 signifiant le dernier caractère du champ)
Enfin si j'ai bien compris le man !
Dernière modification par Postmortem (Le 13/10/2010, à 10:26)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
Pages : 1