shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Substituição com Sed


From: Marcilio Almeida de Moura
Subject: Re: [shell-script] Substituição com Sed
Date: Tue, 19 Dec 2006 22:07:30 -0300 (ART)

Valeu pelas dicas, vou testar todas.

Tiago Barcellos Peczenyj <address@hidden> escreveu:                             
     pode ser usado o grep para mostrar a exata string que se encaixa numa
 expressão regular
 
 arp -an | grep -oE '[0-9.]{4,12}'
 
 quanto ao awk + sed
 
 arp -an | awk '{print $2}'| sed "s/(//g" | sed "s/)//g"
 
 pode ser abreviado para
 
 arp -an | awk '{print $2}' | sed "s/(//g;s/)//g"
 
 e por ai vai... dá pra fazer chover nesse exemplo. feio ou não, o
 importante é que funcione ;-)
 
 On 12/19/06, edjunior <address@hidden> wrote:
 >
 > hey,
 >
 >  acho que o que você procura (são os endereços IP retornados em `arp
 >  -an` né?) pode-se conseguir usando uma substituição com apenas um sed
 >  ;)
 >
 >  Aqui você pega apenas o padrão entre os parênteses (usando os
 >  parênteses 'escapados'), que logo depois é chamado de '\1' na
 >  substituição:
 >
 >  $ arp -an | sed 's/.*(\(.*\)).*/\1/'
 >
 >  Em http://www.grymoire.com/Unix/Sed.html#uh-4 você pode encontrar uma
 >  pequena explicação sobre o que acontece nessa substituição.
 >
 >  hasta!
 >
 >  jr.
 >
 >
 >  On 12/19/06, Marcilio Almeida de Moura <address@hidden> wrote:
 >  > Tudo bom Sérgio,  olha porque minha dúvida, eu usei o sed 2 vezes, fiz
 >  > desta forma:
 >  >
 >  > arp -an | awk '{print $2}'| sed "s/(//g" | sed "s/)//g"
 >  >
 >  > Obrigado pela explicação.
 >  >
 >  >
 >  > Sérgio Durigan Júnior escreveu:
 >  > >
 >  > > On 12/18/06, marcilio.moura <address@hidden
 >  > > <mailto:marcilio.moura%40yahoo.com.br>> wrote:
 >  > > > Boa tarde lista, estou pretendendo realizar uma substituição em um
 >  > > > arquivo e gotaria de saber se o Sed aceita dois paramentros para
 >  > > > substituir ex: trocar : e ) por espaço ? Agradeço a ajuda.
 >  > >
 >  > > E aí Marcílio?!
 >  > >
 >  > > Então cara, pelo que entendi, essa sua dúvida é totalmente resolvida
 >  > > usando-se o "OU" de expressões regulares. Ele é representado por |.
 >  > > Você pode fazer assim:
 >  > >
 >  > > neo@pegasus $ echo "ol:a)b" | sed -ne "s/\(:\|)\)/ /gp"
 >  > > ol a b
 >  > > neo@pegasus $
 >  > >
 >  > > Repare que o caracter | precisa ser escapado pra funcionar! Uma outra
 >  > > alternativa é usar o tr (se você só quiser substituir caracteres:
 >  > >
 >  > > neo@pegasus $ echo "ol:a)b" | tr ':' ' ' | tr ')' ' '
 >  > > ol a b
 >  > > neo@pegasus $
 >  > >
 >  > > Espero ter ajudado!
 >  > >
 >  > > []s
 >  > >
 >  > > Sérgio.
 >  > >
 >  > >
 >  >
 >  >
 >  >
 >  > _______________________________________________________
 >  > Yahoo! Mail - Sempre a melhor opção para você!
 >  > Experimente já e veja as novidades.
 >  > http://br.yahoo.com/mailbeta/tudonovo/
 >  >
 >  >
 >  > ----------------------------------------------------------
 >  > Esta lista não admite a abordagem de outras liguagens de programação, 
 > como perl, C etc. Quem insistir em não seguir esta regra será moderado sem 
 > prévio aviso.
 >  > ----------------------------------------------------------
 >  > Sair da lista: address@hidden
 >  > ----------------------------------------------------------
 >  > Esta lista é moderada de acordo com o previsto em 
 > http://www.listas-discussao.cjb.net
 >  > ----------------------------------------------------------
 >  > Servidor Newsgroup da lista: news.gmane.org
 >  > Grupo: gmane.org.user-groups.programming.shell.brazil
 >  >
 >  >
 >  > Links do Yahoo! Grupos
 >  >
 >  >
 >  >
 >
 >
 >                   
 
 -- 
 Tiago B Peczenyj
 Linux User #405772
 
 # cd /pub
 # more beer
 
     
                       

 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]