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: edjunior
Subject: Re: [shell-script] Separar arquivos em blocos
Date: Tue, 8 May 2007 14:12:02 -0300

hey,

não sei se te ajuda, mas, usando sed, você pode tratar os blocos dessa
forma (fiz um pequeno script em sed que, creio, pode facilitar o
entendimento):

<code>
#!/usr/bin/sed -nf

# limita o bloco entre linhas com "From maillog" e "X-Mailer"
/^>From maillog/,/^X-Mailer/{

# escreve o "From: " na tela e no arquivo from.txt
       s/^From: \(.*\)/FROM=\1/pw from.txt

# escreve o "To :" e "Date: " na tela
       s/^To: \(.*\)/TO=\1/p;
       s/^Date: \(.*\)/DATE=\1/p;
}

</code>

É apenas uma idéia. Se achar legal, pode tentar remodelar a saída,
produzindo algo mais próximo do que você precisa.

hasta!

jr.

On 5/8/07, mop <address@hidden> wrote:
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!!!
>--
>
>



---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
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





reply via email to

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