Forum Programmation.shell Commande sort : tri sans délimiteur

Posté par  (site web personnel) .
Étiquettes : aucune
0
16
avr.
2008
Bonjour,

je cherche à trier un fichier non pas en fonction de colonne (je n'ai pas de délimiteur), mais en fonction de plusieurs zone à position longueur fixe

Sauf que la commande sort ne semble pas faire ce que je veux, puisqu'elle attend un délimiteur (par défaut la tabulation je crois)

J'ai donc essayé de ruser un peu, en lui disant que je n'avais qu'une seule colonne, et donc de filtrer sur des caractères de cette colonne, mais ca ne marche pas non plus, il tri tout le fichier en ignorant mes clés

J'utilise la syntaxe suivante :

sort --key=1.40,1.45 pas_tri.txt > tri.txt

(Là, j'espérais trier mon fichier en fonction des caractères situés entre 40 et 45)

Bref, j'ai l'impression d'avoir lu toute la manpage, donc si quelqu'un à la solution surement très bête à mon problème, je suis preneur, sinon j'vais devoir coder un ptit bout de code en python ou perl, et ca m'embête un peu préfèrerai rester en commande shell
  • # d'apres le man

    Posté par  . Évalué à 2.

    man trouvé ici : http://pwet.fr/man/linux/commandes/sort
    en faisant "man sort" dans google


    +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 position 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.


    ta ligne devrait etre

    sort +0 -45 -o tri.txt pas_tri.txt

    pour trier en se basant sur les 46 premiers caracteres
    • [^] # Re: d'apres le man

      Posté par  . Évalué à 2.

      D'ailleurs, il ya un bug dans la man-page : on dit "exclue" mais "incluse" ...

      La langue française. Ce sont ses subtilités qui en font la beauté ! :-)
    • [^] # Re: d'apres le man

      Posté par  (site web personnel) . Évalué à 1.

      hey, merci, ca semble marcher !

      Ce qui est dingue, c'est que j'ai pas ça dans la manpage de mon sort...
  • # Quel que soit le langage utilisé

    Posté par  (site web personnel) . Évalué à -1.

    Ta solution est expliquée ici :
    http://en.wikipedia.org/wiki/Schwartzian_transform

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.