Forum Programmation.shell faire un paste de deux commandes

Posté par  .
Étiquettes : aucune
0
25
avr.
2009
bonjour,
j'ai un fichier contenant des nombres séparés par des virgules de cette forme:

1,2,4
5,8,9

j'aimerais prendre la 1ere colonne, la traiter avec sed et la transposer en derniere colonne.

Pour le moment je selectionne la 1er colonne avec un cut | sed et je stoque le resultat dans un fichier. Je fait ensuite en cut sur le reste et le stoque dans un 2eme fichier.
puis je fait un paste entre les deux fichiers.
Ce que j'aimerais maintenant, c'est eviter d'avoir à passer par des fichiers temporaires.
Une idée?
  • # awk ?

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

    comme ça ?
    echo 5,4,2|awk -F "," '{print $3,$2,$1}'

    essaye awk c'est plus puissant que

    même
    echo 5,4,2|awk -F "," '{printf ("%s,%s,%s\n",$3,$2,$1);}'

    ou alors avec sed mais sans cut avec l'expression régulière qu'il faut et que j'ai la flegme de chercher maintenant ;-D
  • # L'option -i ...

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

    Bonjour,
    l'option -i permet d'éviter les fichiers temporaires :
    sed -i.old -re 's/([^,]*),(.*)/\2,\1/' fichier

Suivre le flux des commentaires

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