sed formatando CPF, CNPJ e datas

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

[ Hits: 11.424 ]

 


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

[RESOLVIDO] Slackware 13.1.x sob CentOS/KVM não reconhece interface de rede

Cache de conteúdo dinâmico com o Squid

RAID 5 com apenas dois discos, ou menos

Eliminando o Neighbour table overflow

Comando sed para formatar datas

Leitura recomendada

Comentando várias linhas em scripts bash

Minha solução para monitorar múltiplos termômetros no Slackware

Gravando logs dos comandos digitados

Comandos mkdir e cd simultaneamente

Aliases Cores

  

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