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

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

Re: [shell-script] Separar arquivos em blocos


From: mop
Subject: Re: [shell-script] Separar arquivos em blocos
Date: Tue, 08 May 2007 10:39:14 -0300

Eu usaria (uso) coisas assim:

while read;do
 [ "$REPLY" = "From maillo" ]&&HEADER=1&&echo inicio  
 [ "$REPLY" = "X-Mailer: XP" ]&&HEADER=&&echo fim  
done<arquivo


-----------------------
Ao responder, favor retirar meu endereço de email do corpo da mensagem.
Obrigado!



------------------------------------------------------------------
>From: Edilson Azevedo
>Date: Tue, 08 May 2007 10:03:38 -0300
>
>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)
>From: "Javali cafona" <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/^[         ]*//;s/[        ]*$//'`(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>
>X-Mailer: XP
>
>Email 2
>>From maillog
>Date: Mon, 7 May 2007 10:05:37 -0300 (BRT)
>From: "Javali cafona" <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]