OK, assim como está escrito:
$ sed -n '1p; 2h; 3,/tutu/N; /tutu/ N; ${G; p;}' file
ligne
toto
tutu
titi
ligne
como mover um bloco de linhas para outra posição com sed?
imagine um arquivo como:
ligne
ligne
toto
tutu
titi
quero começar:
ligne
toto
tutu
titi
ligne
o que é conhecido padrão é "tutu" & o número da linha de destino "2", e o número de linhas de origem do bloco de texto que eu quero mover.
então eu quero que ele seja copiado (com as linhas anteriores de 1 linha e 1 linha sucessiva) para a posição específica que eu já conheço (linha n ° 2)
Eu tentei:
sed '2,5{ H ;d ; } ; 2{ p ; x ; }' file
mas a parte "colar" não funciona, por isso só é exibida:
ligne
Eu não entendo como colar o buffer em um valor numérico de uma linha; & é isso que eu quero.
Não sed, mas seu ancestral ed :
tutu
e subtraia uma linha tutu
e adicione uma linha m
ove esse bloco para a linha 2 (depois da linha 1
) w
, q
) Como resultado:
ed -s file <<< $'/tutu/-1,/tutu/+1m1\nw\nq'