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: Ronaldo Ferreira de Lima
Subject: Re: [shell-script] SED: Inserir linhas entre dois paterns.
Date: Sun, 12 Oct 2014 01:18:52 -0300
User-agent: mutt-ng/devel-r804 (Linux)

On Sat, Oct 11, 2014 at 11:23:48PM -0300, Jimmy Isaac Neutron wrote:
[...]
> Você pode resumir para:
> 
>     $ sed '/^AAA$/{n;s/^EEE$/BBB\nCCC\nDDD\n&/}' teste
Putz! Lembrei de uma caso onde essa solução irá quebrar:

AAA
BBB
AAA
AAA
EEE
AAA
AAA
AAA
EEE
AAA
CCC

Seria possível apenas ajustar a solução anterior para:

    $ sed ':a;/^AAA$/{n;s/^EEE$/BBB\nCCC\nDDD\n&/;Ta}' teste

Neste caso, quando  "próxima linha" após "AAA" não for  "EEE", retesta o
pattern space  corrente (que  pode ser  mais um  "AAA" ou  múltiplos). A
solução  fica  mais  genérica  mas  não  é  possível  afirmar  que  será
infalível. O  ideal é avaliar o  cenário que você  tem e não o  que acha
ter. Em muitos casos, eu primeiro crio hipóteses para testá-las contra o
input e  apenas crio  scripts/programas baseados  nas "certezas"  que os
testes forneceram sobre os dados.

[]'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]