Retourner aux forums || Retourner au forum Programmation.shell
Programmation.shell : Commande sort : tri sans délimiteur
Posté par cho7 (page perso, ) le 16 avril 2008je 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
le python, c'est bon
d'apres le man
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
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
-
[^]Re: d'apres le man
-
[^]Re: d'apres le man
Posté par cho7 (page perso, ) le 16/04/2008 à 17:03. (lien). Évalué à 1.hey, merci, ca semble marcher !
Ce qui est dingue, c'est que j'ai pas ça dans la manpage de mon sort...--
le python, c'est bon
[+] Quel que soit le langage utilisé
Ta solution est expliquée ici :
http://en.wikipedia.org/wiki/Schwartzian_transform
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.shell



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.