[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] 1º Nome e Nome Completo
From: |
.:::: Marcio ::::. |
Subject: |
Re: [shell-script] 1º Nome e Nome Completo |
Date: |
Sun, 9 May 2004 11:34:31 -0300 |
Em Thu, 6 May 2004 17:41:25 -0300
Viktor Mota <address@hidden> digitou:
Sobre: [shell-script] 1º Nome e Nome Completo
> Olá Galera do mal,
>
> Preciso de uma ajudinha basica da galera dessa lista!
>
> Tenho um arquivo assim... (arquivo.txt)
>
> BENICIO DA SILVA JUAR
> CATOVINO PEREIRA DIAS
> SERMANEY DO ESPIRITO SANTO
> CLAUDIONORIO GONÇALVES PINTO
> ... ETC... Como tem nome estranho nesse Brasilzao!
>
> Preciso criar uma correspondencia que fique ± assim:
> "Prezado BENICIO,
>
> Parabéns... bla bla bla bla bla bla
>
> Vc foi cadastrado como: BENICIO DA SILVA JUAR
>
> Atenciosamente
> A Direcao"
Caro Viktor,
Pelo que pude perceber, vc deseja fazer um tipo de
mala-direta com um arquivo contendo os nomes completos e
depois personalizar uma carta pré-formatada, contendo o nome
e nome completo de cada pessoa. A ferramenta ideal para
isto é o "Awk".
Fiz um script awk que executa essa tarefa. Você precisará
de dois arquivos: um arquivo de banco de dados contendo os
nomes completos das pessoas e outro arquivo contendo a carta
pré-formata.
OBS1.: As partes na carta que serão modificadas pelo script
precisam ser alteradas no arquivo contendo a carta
pré-formatada . Exemplo:
"Prezado Sr. %nome,
Parabéns... bla bla bla bla bla bla
Vc foi cadastrado como: %completo
Atenciosamente
A Direcao"
O script lerá o arquivo de banco de dados e efetuará as
substituições no arquivo com a carta pré-formatada gerando
arquivos no seguinte formato: letter_<nome>
Exemplo: Para os dados do Benicio irá gerar um arquivo
letter_Benicio.
Abaixo, o script:
###### INICIO
# mala.awk --- Um simples gerador de mala direta
# Márcio Mendonça --- address@hidden
#
# Uso: $ awk -f mala.awk
BEGIN \
{
# Lendo o arquivo de banco de dados ...
command = "cat nomes"
while((command | getline) > 0)
nome[$1] = $0
close(command)
# Lendo o arquivo destino e efetuando as substituições ...
for(n in nome){
arqtxt = "cat texto.txt"
while((arqtxt | getline) > 0){ # Lendo o arquivo
gsub("%nome", n) # Efetuando as
alterações
gsub("%completo", nome[n]) # " " "
print > ("letter_" n) # Imprimendo p/ arq.
personalizado.
}
close(arqtxt)
}
}
######## FIM
OBS2.: No script acima, assumimos que o arquivo de banco de
dados tenha o nome "nomes" e o arquivo contendo a carta
pré-formatada se chama "texto.txt"
OBS3.: Executar o script no mesmo diretório onde estão os
arquivos ou alterar o script para o local correto.
[ ]'s
------
////
( O O )
=======oOO==(_)==OOo============
Márcio Alexandre S. Mendonça
address@hidden
Linux User #298595
.oooO Oooo.
======( )===( )=============
\ ( ) /
\_) (_/