[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Expressões regulares usando SED
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Re: Expressões regulares usando SED |
Date: |
Thu, 1 Nov 2007 16:25:47 -0200 |
sed -n '/State=\([^)]\+\)/{s//\1/;p}' xxx
vamos por partes:
Todos conhecem esse comando:
s/expressão/substituição/
porém eu posso executa-lo de forma mais rápida:
/expressão/{ s/expressão/substituição/ }
ou seja, apenas nas linhas onde existe a expressão eu irei fazer a
busca E substituição. felizmente o sed oferece esta sintaxe:
/expressão/{ s//substituição/ }
para não ter que repetir a *mesma* expressão. como eu quero imprimir
apenas aonde foi encontrado o padrão State=xxx eu faço sed -n e
/expressão/{ s//substituição/ ; p }
para imprimir esta linha em especial.
Agora vem o truque: me interessa apenas o que está DEPOIS dos =
Eu tinha duas opções, escolhi a mais exótica:
State=\( expressão regular \)
perceba que eu tenho um grupo. eu posso fazer a substituição de toda
essa expressão pelo que está entre parentesis apenas, chamando o
retrovisor \1
s/State=\( expressão regular \)/\1/
Outra forma seria apagar o State=
sed -n '/State=/{s///;p}' xxx
24
Facil né? Na verdade eu não tinha pensado q podia ser tão simples por
isso meti um grupo la em cima.
On 11/1/07, miguelcm86 <address@hidden> wrote:
>
> Olá tiago não consigo acreditar:P
>
> muito obrigado, estava aqui a passar a tarde toda á volta disso e
> agora voçê arranja-me logo 3 formas:P
>
> o meu problema é agora compreender, vou usar o do SED, pois é por ele
> que tenho feito tudo..
> > ~> sed -n '/State=\([^)]\+\)/{s//\1/;p}' xxx
> > 24
> tive a ler estas paginas:
> http://www.amk.ca/python/howto/regex/regex.html
> http://www.uky.edu/AS/Classics/regex.html
> http://br.geocities.com/cesarakg/sed-1.html#pick
> e não consegui encontrar a solução.
>
> Já agora será que podia explicar esta parte:
> \([^)]\+\)/{s//\1/;p}
>
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"
- Expressões regulares usando SED, miguelcm86, 2007/11/01
- Re: [shell-script] Expressões regulares usando SED, miranda, 2007/11/01
- Re: [shell-script] Expressões regulares usando SED, Gentil de Bortoli Jr, 2007/11/01
- Re: [shell-script] Expressões regulares usando SED, Fabiano Caixeta Duarte, 2007/11/01
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED, Tiago Barcellos Peczenyj, 2007/11/02
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED, Tiago Barcellos Peczenyj, 2007/11/02
- Re: [shell-script] Re: Expressões regulares usando SED, Fabiano Caixeta Duarte, 2007/11/05
- Re: Expressões regulares usando SED, miguelcm86, 2007/11/05