sed formatando CPF, CNPJ e datas

Publicado por Carlos Affonso Henriques. em 30/03/2011

[ Hits: 11.600 ]

 


sed formatando CPF, CNPJ e datas



Em formulários CGI e programas em shell que tenham entradas manuais de CPF, CNPJ e datas é um tanto chato e passível de erros digitá-los com seus formatos. O sed aqui se mostra muito útil para formatá-los.

Para formatar CPF:

echo 99988877755 | sed -e 's!\.!!g;s!\(...\)!\1.!1;s!\ (.\)!\1.!7;s!\(.\)!\1-!11' A saída deste comendo será:

999.888.777-55

Para formatar CNPJ com o sed faça o seguinte.

CNPJ 18 caracteres (antigo):

echo 99888777000155 | sed -e 's!\.!!g;s!\(..\)!\1.!1;s!\ (.\)!\1.!6;s!\(.\)!\1/!10;s!\(.\)!\1-!15'

A saída será: 99.888.777/0001-55

CNPJ 19 caracteres (novo):

echo 199888777000155 | sed -e 's!\.!!g;s!\(.\)!\1.!3;s!\ (.\)!\1.!7;s!\(.\)!\1/!11;s!\(.\)!\1-!16'

A saída será: 199.888.777/0001-55

Muito semelhante ao CPF e CNPJ esta linha de comando o sed formata datas igualmente para 6 ou 8 dígitos:

echo 10102011 | sed -e 's!\.!!g;s!\(.\)!\1\/!2;s!\ (.\)!\1\/!5;s!$!!'

A saída será: 10/10/2011

echo 101011 | sed -e 's!\.!!g;s!\(.\)!\1\/!2;s!\ (.\)!\1\/!5;s!$!!'

A saída será: 10/10/11

Bom trabalho.

Outras dicas deste autor

Limitando a 1 login por usuário

Target TTL do Iptables: Contornando bloqueios de compartilhamento

CBQ: Controle efetivo II

Comando sed para formatar datas

Obtendo Número de Série do MikroTik Routerboard

Leitura recomendada

Execução anônima em xpdf

Entrando com argumentos em shell script

Instale pacotes pelo apt através de uma lista

Comandos mkdir e cd simultaneamente

Wolfenstein Enemy Territory no Ubuntu 12 com som e Omnibots

  

Comentários
[1] Comentário enviado por tiekookeit em 31/03/2011 - 09:55h

Eu faria, assim:

echo 99988877755|sed 's:\(...\)\(...\)\(...\)\(.*\):\1.\2.\3-\4:'

echo 199888777000155 |sed 's:\(...\)\(...\)\(...\)\(....\)\(.*\):\1.\2.\3/\4-\5:'

echo 10102011 | sed 's:\(..\)\(..\)\(.*\):\1/\2/\3:'

echo 101011 | sed 's:\(..\)\(..\)\(.*\):\1/\2/\3:'

[2] Comentário enviado por tiekookeit em 31/03/2011 - 09:58h

observação, com tanto faz o separador, eu desaconselho a utilizacao da ! como separador, por no caso de utilização de " ao inves de ', o comando vai abortar eu utilizo em geral o | ou : ou \

[3] Comentário enviado por uberalles em 31/03/2011 - 10:48h

bacaninha! quebra um galhão essas paradas que são fáceis de fazer (entre aspas), mas voce empaca num posicionamento correto de contra-barra



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts