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" <[EMAIL PROTECTED]>
>
>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" <[EMAIL PROTECTED]>
>X-Mailer: XP
>
>Email 2
>>From maillog
>Date: Mon, 7 May 2007 10:05:37 -0300 (BRT)
>From: "Javali cafona" <[EMAIL PROTECTED]>
>Cco: [EMAIL PROTECTED]
>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!!!
>-- 
>
>



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a