sed formatando CPF, CNPJ e datas

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

[ Hits: 11.377 ]

 


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

IP estático no Amazon Linux

TOR Browser rodando sob root ou qualquer outro usuário

Sed para formatar endereços MAC

Permissões persistentes em portas seriais

Obtendo o Dockerfile a partir de uma imagem

Leitura recomendada

Como restaurar as cores do terminal

Funções ZZ é uma coletânea com 111 miniaplicativos

Comando sed para formatar datas

Curso Grátis de Dialog [vídeo]

Script que automatiza o envio de backup para o email

  

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