shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] SED: Inserir linhas entre dois paterns.


From: Rodrigo Tenorio
Subject: Re: [shell-script] SED: Inserir linhas entre dois paterns.
Date: Sun, 12 Oct 2014 17:18:40 -0300

Ronaldo,

Lhe sou grato pela boa disposição em ajudar.
Dei uma estudada a mais aqui e, com sua ajuda, compreendi.

Deixo registrado abaixo a melhor solução [até o momento] para o cenário que possuo:
£ sed ':a;N;$!ba;s/\(^\|\n\)\(AAA\)\n\(EEE\)\(\n\|$\)/\1\2\nBBB\nCCC\nDDD\n\3\4/' testeComErro

Para melhor visualização:
£ diff -y testeComErro <(sed ':a;N;$!ba;s/\(^\|\n\)\(AAA\)\n\(EEE\)\(\n\|$\)/\1\2\nBBB\nCCC\nDDD\n\3\4/' testeComErro)

Cordialmente,
Rodrigo Boëchat


Em 12 de outubro de 2014 16:50, Ronaldo Ferreira de Lima address@hidden [shell-script] <address@hidden> escreveu:
 

Saudações Paulo,

On Sun, Oct 12, 2014 at 04:20:06PM -0300, Paulo Bettega address@hidden [shell-script] wrote:
> Nesse caso minha idéia falha, pois perde as duas linhas AAA
> seguidas, com EEE depois
>
> sed '/AAA/ {N;s/EEE/&\nBBB\nCCC\nDDD/;}' testeComErro
No cenário que o Rodrigo descreveu, esse problema não ocorre, então essa
solução funciona bem, precisa apenas trocar o '&' de lugar para completar
a sequência corretamente: "AAA\nBBB\nCCC\nDDD\nEEE", da forma como está,
ele faz: "AAA\nEEE\nBBB\nCCC\nDDD".

> Abraços Paulo Bettega

[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]