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

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

Re: [shell-script] Expressão Regular Com SED


From: Fernando Luizao
Subject: Re: [shell-script] Expressão Regular Com SED
Date: Tue, 29 Jun 2010 06:43:06 -0700 (PDT)

Acho que o sed não suporta o atalho '\d', o jeito é usar uma lista no lugar, 
por exemplo:

sed -r 's/^[+-]?(([0-9]+|[0-9]{1,3}(\.[0-9]{3})+)(\,[0-9]*)?|\,[0-9]+)$//'

O sed acima vai substituir um número válido por *nada*, aí se vc quiser validar 
pode usar o wc para contar o número de palavras. Por exemplo:

NUMERO=`echo "1.2123.333,45" | sed -r 
's/^[+-]?(([0-9]+|[0-9]{1,3}(\.[0-9]{3})+)(\,[0-9]*)?|\,[0-9]+)$//'`
[ `echo $NUMERO | wc -w` == 0 ] && echo valido || echo invalido

Nota: *Talvez* a opção "-r" não funcione no AIX, e vc precise escapar os 
colchetes.

Qualquer dúvida estamos aí ;)

Abraços
Fernando

--- Em ter, 29/6/10, fsilva6 <address@hidden> escreveu:

De: fsilva6 <address@hidden>
Assunto: [shell-script] Expressão Regular Com SED
Para: address@hidden
Data: Terça-feira, 29 de Junho de 2010, 10:15







 



  


    
      
      
      Senhores,

         para validar um campo DECIMAL em java script utilizo a expressão 
regular abaixo.



/^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/



Estou tentando migrar essa expressão  para executa-la no AIX com SED e estou 
tomando o seguinte erro.



sed: /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/ is not a recognized 
function.



Já fiz algumas alterações no SED mas até agora não obtive sucesso.



Alguém poderia me auxilar na resolução deste problema?





    
     

    
    


 



  






      

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



reply via email to

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