[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Formatar CPFs com ER no SED?
From: |
Leandro Santiago |
Subject: |
Formatar CPFs com ER no SED? |
Date: |
Wed, 25 Feb 2009 18:56:29 -0300 |
User-agent: |
Thunderbird 2.0.0.19 (X11/20081209) |
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. :-)
- Formatar CPFs com ER no SED?,
Leandro Santiago <=