#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 (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