shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Formatar CPFs com ER no SED?


From: Flavio Junior
Subject: Re: [shell-script] Formatar CPFs com ER no SED?
Date: Wed, 25 Feb 2009 20:03:14 -0300

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Uma forma:

[root@pinky ~]# cat x
11111111111
1111111111

11111111111
[root@pinky ~]# sed -r -e
'/^[0-9]{10}$/s/^/0/;s/^([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})/\1.\2.\3-\4/'
x
111.111.111-11
011.111.111-11

111.111.111-11


conteudo mais "legivel" (merda de gmail..): http://rafb.net/p/IoHrcW35.html


- --

Flávio do Carmo Júnior aka waKKu

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: http://getfiregpg.org

iEYEARECAAYFAkmlzjwACgkQgyuXjr6dyksNQwCdHis2gWXCcoh6TeRqcC37c64U
wm0AoI9h0LD5V0+W+aKQVST0Hiuol/4c
=zBkO
-----END PGP SIGNATURE-----

2009/2/25 Leandro Santiago <address@hidden>:
> Olá shelleiros de plantão.
>
> Gostaria de tirar uma dúvida: é possível fazer via sed substituições num
> texto para deixá-lo "formatado"?
>
> Por exemplo, tenho um arquivo onde cada linha contém somente um CPF.
> Neste arquivo há também linhas vazias que devem ser mantidas na saída.
>
> Do tipo:
>
> 11111111111
> 1111111111
>
> 11111111111
>
> Onde algumas linhas tem ou não o primeiro caractere (o texto é retirado
> de uma planilha e por alguma razão o editor de planilhas remove o
> primeiro caractere quando este é zero :-)).
>
> Eu resolvi meu problema com o seguinte script, que é cheio de bashismos
> (eu sempre escrevo scripts para o bash):
>
> #!/bin/bash
>
> TMPFILE=$(mktemp)
>
> while read linha
> do
> # se falta um zero no início, insere
> if ((${#linha}==10)); then linha=0${linha}; fi
>
> # aqui escreve no formato CPF: 000.000.000-00
> echo ${linha:0:3}.${linha:3:3}.${linha:6:3}-${linha:10:1};
>
> done < "$1" | sed 's/\.\.-$//g' > $TMPFILE
>
> mv -f $TMPFILE "$1"
>
> Este script funciona muito bem, mas queria fazê-lo rodar todo usando só
> sed (há um sed no final, mas é só para consertar a gambiarra :-)).
>
> Isto é possível? Fazer formatações em strings ou mesmo substituições do
> tipo "a primeira palavra vira um 'oi', a terceira um 'ai'" e assim em
> diante, mantendo as palavras que estão entre as que serão substituídas?
> Isso seria muito interessante para mim principalmente para fazer
> modificações diretas em planilhas (CSV).
>
> Me desculpem se o assunto já foi abordado, mas não achei no histórico da
> lista.
>
> Abraços e já vou indo já que o Workgrave está gritando que eu estou a
> tempo demais na frente do computador. Aí em vez de E.R. vou é ter L.E.R. :-)
>
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]