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

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

Separar arquivos em blocos


From: Edilson Azevedo
Subject: Separar arquivos em blocos
Date: Tue, 08 May 2007 10:03:38 -0300
User-agent: Thunderbird 1.5.0.9 (X11/20070103)

Bom dia pessoal!

    A algum tempo mandei um email para vcs para me auxiliar a retirar
alguns dados de um arquivo. Lembrando, a sintaxe do arquivo é essa aqui:

Date: Mon, 7 May 2007 10:05:37 -0300 (BRT)
Subject: Fwd: Envio de relatorio
From: "Javali cafona" <address@hidden>
To: address@hidden

Como podem ver é o cabecalho de uma mensagem de email. Para separar o
"From" numa variável, por exemplo, eu uso:
FROM=`cat $ARQ| grep '^From' | cut -f2 -d'<' |sed -e s/"From: "// |tr -d
'>'| sed 's/^[ \t]*//;s/[ \t]*$//'`(assim eu pego só o endereço de email
do sujeito)

Aprendí muito com vcs e tudo está joia! Porém (sempre tem um porém...
rsrs), Eu me deparei com uma dúvida. Sei separar por linhas, sei limpar
a linha e sei salvar em banco. Mais como faço para saber se a informação
que tenho é realmente de email1 ou email2?

Não sei se estou sabendo me expressar, mais minha dúvida é a seguinte: É
possivel fazer com que o shell-script separe um arquivo por blocos??
Dessa forma eu faria assim (desculpe a ignorância, mais tentarei dar um
exemplo):

Email 1
>From maillog
Date: Mon, 10 May 2007 11:02:01 -0300 (BRT)
Subject:
From: "Javali cafona" <address@hidden>
To: address@hidden
X-Mailer: XP

Email 2
>From maillog
Date: Mon, 7 May 2007 10:05:37 -0300 (BRT)
Subject: Fwd: Envio de relatorio
From: "Javali cafona" <address@hidden>
To: address@hidden
Cco: address@hidden
X-Mailer: XP

Eu quero que o shell leia o arquivo, quando ele encontrar "From maillog"
ele saiba que é o inicio do bloco e quando ele ler "X-Mailer: XP" saiba
que é o fim. Dessa forma ele inicia o trabalho em $BLOCO. Depois ele lê
o conteúdo de $BLOCO (From:, To:, Date:) e manda para devidas variáveis
($FROM, $TO, $DATE) e pronto! Ele manda o valor de $FROM.... para
arquivo texto (ou em banco, que é o meu caso).
    Daqui por diante ele deve descartar o valor de todas as variáveis e
continuar para o _próximo_ bloco, que ele sabe que começa em "From
maillog" e termina em "X-Mailer: XP". Sacaram? O problema principal
seria essa idéia de separar em blocos, coletar variáveis e pular para o
próximo bloco. Francamente nunca lí nenhum script que faça isso... rs.

    Se alguém puder me dar uma luz!

Valeu Pessoal!!!
-- 



reply via email to

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