[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Re: Re: [shell-script] expressao regular
From: |
Marcio Gil |
Subject: |
RE: Re: Re: [shell-script] expressao regular |
Date: |
Thu, 29 Apr 2010 15:41:34 -0300 |
Tenta assim:
echo "/nobr" | sed -e 's/.nobr//g'
Em expressões regulares "." é que quer dizer qualquer caracter.
Mas você também escrever:
echo "/nobr" | sed -e 's/.\?nobr//g'
E funcionará também assim:
echo "nobr" | sed -e 's/.\?nobr//g'
Que quer dizer: substitua "qualquer caracter" (zero ou um) seguido
de "nobr" por nada.
No sed, "?" puro é a interrogação literal. Quando com escape quer
dizer zero ou um do caracter precedente.
> -----Original Message-----
> From: address@hidden
> Subject: Re: Re: Re: [shell-script] expressao regular
>
>
> Bem, realmente o uso de aspas e a diferença do grep versus egrep
> (ou grep -E) fez a diferença.
> Porém no sed, não estou conseguindo encontrar o erro:
> echo "/nobr" | sed -e 's/?nobr//g'
> /nobr
> echo "/nobr" | sed -e 's/"?nobr"//g'
> /nobr
> echo "/nobr" | sed -e "s/?nobr//g"
> /nobr
> e por ai vai. o que está errado?
> obrigado!
> eric
> On Qua 28/04/10 13:29 , Marcelo Andrade address@hidden sent:
> 2010/4/28 Thiago Diniz da Silveira :
> > O "?" pode ser qualquer caracter.
> >
> > Nesse caso ele ira dar um grep em todo que comece com "fe"
tenha
> um caracter
> > no meio e termine com "d"
> > o caracter pode ser um espaço também senão me engano.
> Isso no shell, que no caso interpreta o ? como um metacaracter.
> Em expressões regulares, o significado é o que o Eric falou.
> Por isso que é bom sempre deixar a expressão regular entre
> aspas, que nem a sugestão do Ernander.
> Eu prefiro aspas simples... mas é outra história. :-)
> Atts.
> --
> MARCELO F ANDRADE
> Belem, Amazonia, Brazil
> "I took the red pill"
>
>