Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/11/2011, à 21:34

aduxas

[Résolu] Déplacer une ligne avec sed

Quel est le moyen le plus simple pour déplacer une ligne avec sed?  Est-ce que cela peut se faire en une seule commande?  Le suivant est un peu lourd:

$ echo '1\n2\n3\n4\n5\n6\n7\n8\n9\n' | sed '3{h;d};5G'
1
2
4
5
3
6
7
8
9

Dernière modification par aduxas (Le 07/11/2011, à 23:08)

Hors ligne

#2 Le 07/11/2011, à 22:10

JoelS

Re : [Résolu] Déplacer une ligne avec sed

Ben je vois pas trop comment faire autrement en sed. Sed reste limité malgré tout.

Hors ligne

#3 Le 07/11/2011, à 22:31

sputnick

Re : [Résolu] Déplacer une ligne avec sed

Haaa, c'est l'occas de ressortir un bon vieux ed des familles MDR02.gif (ne sert chez moi qu'à déplacer des lignes) :


$ echo -e '1\n2\n3\n4\n5\n6\n7\n8\n9\n' > /tmp/l
$ ed -s /tmp/l <<< $'3m5\nw'
$ cat /tmp/l
1
2
4
5
3
6
7
8
9

Si besoin :

sudo apt-get install ed

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#4 Le 07/11/2011, à 23:08

aduxas

Re : [Résolu] Déplacer une ligne avec sed

Ouais, je connais bien ed, et je suis d'accord, il est vieux.  S'il est tellement bon est une autre question...
Mais j'avoue que je dois rouvrir le manuel de sed à chaque fois, car il est difficile de se rappeler de ce font exactement g G h H x.  Merci encore.

Hors ligne