[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Validação CPF/CNPJ em shell-script
From: |
Valtoir |
Subject: |
Re: [shell-script] Validação CPF/CNPJ em shell-script |
Date: |
Mon, 4 Aug 2003 08:55:44 -0300 |
Quando não tenho a solução prá algum problema eu o mentalizo antes de
dormir. Pela manhã dou uma lida na Dicas-L e a solução está lá :-)
Primeira atualização do script:
Onde estava:
if [ $digpos == 10 ]; then
matriz=(10 9 8 7 6 5 4 3 2)
else
matriz=(11 10 9 8 7 6 5 4 3 2)
fi
eu troquei por:
matriz=(`seq $digpos 2`)
Ficou mais enxuto, mas não sei que diferença possa haver na performance já
que com o seq temos um processo a mais.
T+
Valtoir
--------------- 8< corte aqui 8< --------------
#!/bin/bash
## shell script em bash2 para validação de CIC
### escrito por Valtoir S. Jardim e << melhore o código, coloque seu nome
aqui e me envie uma cópia>> ;-)
#### address@hidden
##### feito em 2003-08-01, atualizado em 2003-08-04
for digpos in 10 11; do
matriz=(`seq $digpos 2`)
y=matriz[1]
dig=0
for x in ${matriz[*]}; do
let pos=$x-$y
let dig=$dig+`echo $1 | cut -c$pos`*$x
let y=$y-2
done
dig=`echo 11-$dig%11 | bc`
if [ $dig -ge 10 ]; then
dig=0
fi
if [ $dig -ne `echo $1 | cut -c$digpos` ]; then
echo -e "\nCIC inválido\n"
exit
fi
done
echo -e "\nCIC válido\n"
--------------- >8 --corte aqui -- >8--------------
----- Original Message -----
From: "César A. K. Grossmann" <address@hidden>
To: <address@hidden>
Sent: Friday, August 01, 2003 11:27 AM
Subject: [shell-script] Validação CPF/CNPJ em shell-script
Olá
Alguém já escreveu algum filtro de CPF/CNPJ para shell-script? Eu
volta e meia recebo um arquivo texto com nomes e CPF/CNPJ (entre
outras informações) e preciso validar os mesmos antes de submeter para
outras aplicações.
Estava pensando em algo tipo um filtro que recebe apenas uma opção que
comutaria entre deixar passar os números válidos e os inválidos. O
filtro faria a leitura dos CPF/CNPJ pela entrada padrão, e escreveria
os resultados na saída padrão. Algo tipo:
Início
INVALIDOS = falso
Se número_opções = 1 então
se opção = --inválidos então
INVALIDOS = verdadeiro
senão
erro( "Opção desconhecida" )
fimse
fimse
ler linha
enquanto linha <> vazio
se validar_cpf_cnpj (linha) então
se INVALIDOS = falso então
escreve linha
fimse
senão
se INVALIDOS então
escreve linha
fimse
fimse
fimenquanto
fim
A função de validação do CPF CNPJ é que é o problema aqui. O primeiro
passo seria descobrir se se trata de um CPF ou um CNPJ. Supondo que
não existam caracteres de pontuação no número, e que cada linha tem
exatamente um número de CPF ou CNPJ, se tiver 11 caracteres é CPF, e
se tiver 14 caracteres é CNPJ.
Alguém tem alguma idéia ou código a compartilhar?
[]s
--
Cesar A. K. Grossmann ICQ UIN: 35659423
http://www.LinuxByGrossmann.cjb.net/
Sit vis nobiscum.
O Maravilhoso Mundo do Linux 2.6 - Confira a tradução!
http://www.LinuxByGrossmann.cjb.net/wwol26-ptBR.html
Visite o Chessworld.net!
http://www.letsplaychess.com/chessclubs/asplogin.asp?from=13550
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
- Validação CPF/CNPJ em shell-script, César A . K . Grossmann, 2003/08/01
- Re: [shell-script] Validação CPF/CNPJ em shell-script, Valtoir, 2003/08/01
- Re: [shell-script] Validação CPF/CNPJ em shell-script,
Valtoir <=
- Re: Validação CPF/CNPJ em shell-script, César A . K . Grossmann, 2003/08/04
- Re: [shell-script] Re: Validação CPF/CNPJ em shell-script, Valtoir, 2003/08/04
- Re: [shell-script] Re: Validação CPF/CNPJ em shell-script, Silvano Bolfoni Dias, 2003/08/04
- Re: [shell-script] Re: Validação CPF/CNPJ em shell-script, Valtoir, 2003/08/04
- Re: [shell-script] Re: Validação CPF/CNPJ em shell-script, Silvano Bolfoni Dias, 2003/08/04