[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]