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 ordenar suas mensagens por data? Basta clicar no link da coluna data. Suas preferências serão lembradas para que você não precise fazer isso novamente sempre que retornar.

Mensagens

  Ajuda
Avançado
Juntar duas linhas   Lista de mensagens  
Responder | Encaminhar Mensagem #4228 de 4300 |
Re: [sed-br] Juntar duas linhas

Oi Jimmy, estou aproveitando para aprender :)

jimmy escreveu:
>> mas deve ter como só imprimir as linhas que foram editadas, certo?
> você pode usar o parâmetro "-n" no sed e colocar um "p" no final do
> comando:
>
> sed -n
'/^Reference/N;s/[^=]\+=\s\+\([^;]\+\);[^=]\+=\s\+\([^;]\+\);/\1,\2/p' arquivo

Ok, este eu entendi :) - "-n" é para não imprimir, e o "p" imprime as
linhas que interessam...

> ou usar um "!d" para apagar todas as outras linhas:
>
> sed
'/^Reference/N;/[^=]\+=\s\+\([^;]\+\);[^=]\+=\s\+\([^;]\+\);/!d;s//\1,\2/'
arquivo

Este eu não entendi... o que é a "!" ??
e também não está fazendo na sequencia normal (vou resumir porque está
confuso):
1) Seleciona a linha co Referencia e acrescenta a próxima linha. fica
com "\n" e tudo no buffer. Acho que essa eu entendi.
2) tem uma expressão regular que parece que não faz nada nas define as
variáveis 1 e 2. É isso?
3) deleta, mas com o "!" que não entendi o que faz
4) como o buffer ficou vazio, substitui o nada pelo que eu quero usando
as variáveis da expressão anterior. Não entendi porque elas não foram
apagadas...

Me dê uma luz...

Abraços,
Alain






Ter, 30 de Jun de 2009 9:37 pm

alainm3
Offline Offline
Enviar e-mail Enviar e-mail

Encaminhar Mensagem #4228 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