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

[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.
======(   )===(   )=============
       \ (     ) /
        \_)   (_/


reply via email to

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