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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Substituição com Sed
Date: Tue, 19 Dec 2006 22:48:29 -0200

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


reply via email to

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