|
Re: [sed-br] Juntar duas linhas
jimmy escreveu:
> On Mon, Jun 29, 2009 at 05:22:41PM -0300, Alain Mouette wrote:
>> Oi Jimmy,
>>
>> jimmy escreveu:
>>> On Mon, Jun 29, 2009 at 04:20:40PM -0300, Alain Mouette wrote:
>>>> pesquisei ni Só Sed, mas não encontrei como juntar duas linhas específicas.
>>>>
>>>> Tenho um arquivo assim:
>>>> ---------
>>>> Cmp-Mod V01 Genere par PcbNew le Seg 29 Jun 2009 15:38:03 BRT
>>>>
>>>> BeginCmp
>>>> TimeStamp = 49B88542
>>>> Path = /49B852A5/49B88542
>>>> Reference = U4;
>>>> ValeurCmp = MC33063;
>>>> IdModule = a_8DIP300;
>>>> EndCmp
>>>>
>>>> BeginCmp
>>>> TimeStamp = 49B85EEF
>>>> Path = /49B85EEF
>>>> Reference = U2;
>>>> ValeurCmp = AT24C08A;
>>>> IdModule = a_8DIP300;
>>>> EndCmp
>>>> .....
>>>> -----------
>>>> com muitos conjuntos semelhantes.
>>>> Gostaria que ficasse assim:
>>>>
>>>> U4,MC33063
>>>> U2,AT24C08A
>>>>
>
> o script que sugeri ficaria apenas:
>
> sed '/^Reference/N;s/[^=]\+=\s\+\([^;]\+\);[^=]\+=\s\+\([^;]\+\);/\1,\2/'
arquivo
>
> testando aqui funciona sem problema.
Entendi o problema, eu estava fazendo uma parte e depois a outra, ou
seja dois comandos sed separados.
Sobrou alguma coisa... as outras linhas aparecem na saída também,
resolvi (na gambiarra, hehe) assim:
grep 'Reference\|ValeurCmp' GPT2.cmp | sed
'/^Reference/N;s/[^=]\+=\s\+\([^;]\+\);[^=]\+=\s\+\([^;]\+\);/\1,\2/'
mas deve ter como só imprimir as linhas que foram editadas, certo?
Abraços,
Alain
|