Entrar
Usuário novo? Cadastre-se
sed-br · Lista sobre SED e Expressões Regulares
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode receber várias mensagens em um único e-mail. Basta configurar suas opções de entrega de e-mail.

Mensagens

  Ajuda
Avançado
Juntar duas linhas   Lista de mensagens  
Responder | Encaminhar Mensagem #4226 de 4300 |
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




Seg, 29 de Jun de 2009 9:45 pm

alainm3
Offline Offline
Enviar e-mail Enviar e-mail

Encaminhar Mensagem #4226 de 4300 |
Expandir mensagens Nome/E-mail Classificar por data

pesquisei ni Só Sed, mas não encontrei como juntar duas linhas específicas. ... Cmp-Mod V01 Genere par PcbNew le Seg 29 Jun 2009 15:38:03 BRT BeginCmp ...
Alain Mouette
alainm3
Offline Enviar e-mail
29 de Jun de 2009
7:17 pm

... use o "Reference" como endereço e apense com a próxima linha: /^Reference/N; nesse ponto o pattern space ficará algo parecido com: "Reference =...
jimmy
ronaldo_tgz
Offline Enviar e-mail
29 de Jun de 2009
7:41 pm

Oi Jimmy, ... Infelizmente não funcionou... fazendo vários testes, só descobri que se trocar o "N" por "p", a linha fica repetida, então está achando a...
Alain Mouette
alainm3
Offline Enviar e-mail
29 de Jun de 2009
8:19 pm

... o script que sugeri ficaria apenas: sed '/^Reference/N;s/[^=]\+=\s\+\([^;]\+\);[^=]\+=\s\+\([^;]\+\);/\1,\2/' arquivo testando aqui funciona sem problema. ...
jimmy
ronaldo_tgz
Offline Enviar e-mail
29 de Jun de 2009
9:11 pm

... 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...
Alain Mouette
alainm3
Offline Enviar e-mail
29 de Jun de 2009
9:41 pm

... você pode usar o parâmetro "-n" no sed e colocar um "p" no final do comando: sed -n...
jimmy
ronaldo_tgz
Offline Enviar e-mail
30 de Jun de 2009
12:25 pm

Oi Jimmy, estou aproveitando para aprender :) ... Ok, este eu entendi :) - "-n" é para não imprimir, e o "p" imprime as linhas que interessam... ... Este eu...
Alain Mouette
alainm3
Offline Enviar e-mail
30 de Jun de 2009
9:34 pm

... era isso mesmo. ... ela é usada como endereço (info sed Addresses) para os comandos "!d", aproveitando para definir as backreferences "\1" e "\2" (info...
jimmy
ronaldo_tgz
Offline Enviar e-mail
1 de Jul de 2009
12:50 pm
Avançado

Copyright © 2009 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda