Probleme avec la commande sort

Fermé
Victoria - 14 janv. 2010 à 21:26
 Victoria - 14 janv. 2010 à 22:30
Bonjour,

Je dois trouver une commande pour trier un fichier qui contient 100 lignes dans le désordre.
Le fichier est constitué de la manière suivante : un numéro puis une tabulation et ensuite une phrase, ce que je dois trier de manière alphabétique c'est le début de chaque phrase mais tout en gardant leur numéro au début.

Exemple :

84 Le petit blablabla
77 Ce qui suit blabla
99 Bon courage blabla

Comment faire??? J'ai essayé avec la commande SORT mais je n'y arrive pas.

Merci d'avance pour vos réponses...

5 réponses

Salut,

Comme ça?

lami20j@debian:~/michelin$ cat plop.txt 
84      Le petit blablabla
77      Ce qui suit blabla
99      Bon courage blabla 
lami20j@debian:~/michelin$ sort -k+2 plop.txt 
99      Bon courage blabla 
77      Ce qui suit blabla
84      Le petit blablabla
1
Excuse-moi, j'ai fait une fausse manipulation mais là ça marche mais peux-tu m'expliquer ta commande que signifie le k??? le+2???

Merci.
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 901 > Victoria
14 janv. 2010 à 22:22
Salut,

man sort

       +POS1 [-POS2]
              Indiquer un champ à utiliser comme clé de tri pour chaque ligne.
              Le champ consiste en une portion de de ligne débutant à la posi-
              tion POS1, et s'étendant jusqu'à POS2 non-inclue (ou jusqu'à  la
              fin de la ligne si POS2 n'est pas mentionnée). Les positions des
              champs et des caractères sont numérotées à partir de 0.

       -k POS1[,POS2]
              Une autre syntaxe possible pour indiquer les clés de  tri.   Les
              positions  des champs et des caractères sont numérotées à partir
              de 1.

       Une position est de la forme f.c,  où  f  est  le  numéro  du  champ  à
       utiliser,  et c le numéro du premier caractère depuis le début du champ
       (avec +pos) ou depuis la fin du champ précédent (avec -pos).  La partie
       .c  de  la  position peut être omise, auquel cas le caractère considéré
       est le premier du champ.  Si l'option -b  est  choisie,  la  partie  .c
       d'une  spécification de champ est comptée à partir du premier caractère
       non-blanc du champ (pour +pos) ou à partir du  premier  caractère  non-
       blanc suivant le champ précédent (pour -pos).

       Un  argument  +pos  ou  -pos  peut également avoir un préfixe constitué
       d'une des lettres d'option Mbdfinr auquel cas les options  globales  ne
       s'appliquent  pas  à ce champ.  l'option -b peut être attachée indépen-
       damment aux parties +pos ou -pos d'une spécification de champ. Si  elle
       est  héritée  d'une option globale, elle s'appliquera aux deux parties.
       Si une option -n ou -M est utilisée,  ceci  implique  que  l'option  -b
       s'applique  aux  deux  spécifications  +pos  et -pos.  Les clés peuvent
       s'étendre sur plusieurs champs.
0
lami20j > jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
14 janv. 2010 à 22:24
Salut,

Merci ;-)
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 901 > lami20j
14 janv. 2010 à 22:28
De rien man ;-))
0
Victoria > lami20j
14 janv. 2010 à 22:30
MERCI MERCI MERCI beaucoup à tous, ça marche comme sur des roulettes......
0
Utilisateur anonyme
14 janv. 2010 à 21:51
Je dois trouver une commande pour trier un fichier qui contient 100 lignes

Ce ne serait pas plutôt un dossier qui contient 100 fichiers dans le désordre ?
0
Non, non, c'est bien 100 lignes dans le désordre avec leur numéro attribué dans un seul fichier et il faut mettre par ordre alphabétique les phases tout en respectant leur numéro.
0
Salut ami20j

Oui, c'est le résultat que je dois obtenir mais quand j'essaye ta commande, ça ne marche, ça me trie les numéros et non les phrases, cela est peut-être du à la tabulation qu'il y a entre le numéro et la phrase. Je ne sais pas mais en tout cas ça va pas... Merci quand même!! Une autre solution????
0
Re,

Dans l'exemple que je t'ai donné il trie selon le 2ème champ et pas les numéros au début de ligne.
Mets ton fichier sur cjoint.com pour pouvoir tester.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
14 janv. 2010 à 22:18
sort -n|cat nom_du_fichier

Mais le trie est à l'envers
0