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 <fsil...@yahoo.com.br> escreveu: De: fsilva6 <fsil...@yahoo.com.br> Assunto: [shell-script] Expressão Regular Com SED Para: shell-script@yahoogrupos.com.br 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]