[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
- SED: Inserir linhas entre dois paterns., Rodrigo Tenorio, 2014/10/11
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Ronaldo Ferreira de Lima, 2014/10/11
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Rodrigo Tenorio, 2014/10/11
- Re: [shell-script] SED: Inserir linhas entre dois paterns.,
Ronaldo Ferreira de Lima <=
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Rodrigo Tenorio, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Ronaldo Ferreira de Lima, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Ronaldo Ferreira de Lima, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Rodrigo Tenorio, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Ronaldo Ferreira de Lima, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Paulo Bettega, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Ronaldo Ferreira de Lima, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Rodrigo Tenorio, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Paulo Bettega, 2014/10/12
- Re: [shell-script] SED: Inserir linhas entre dois paterns., Paulo Bettega, 2014/10/12