Eu não acho uma boa solução, mas tu poderia deixar o sed lendo a saida
de um tail -f por exemplo...

$ tail -f /var/log/mail.log | sed -nr '/^(Delivered-To:|To:|Sender:)/p'

No caso esse comando a cima so vai imprimir as linhas que tu quer, ai
tu se vira pr adirecionar pra onde tu quer q eu nem sei o q é..


Espero ter dado uma ideia,

--

Flávio do Carmo Junior aka waKKu

2008/5/15 Edilson Azevedo <[EMAIL PROTECTED]>:
> Olá pessoal!
>
> Primeiro agradeço ao 'MrBIT' pela liberação do OFF-TOPIC. Continuando,
> os exemplos do sed me cairam bem, também tive bons resultados com a soma
> de grep e awk. Isso funciona perfeitamente em arquivo, mais em stream
> não sei como posso aplicar. Por exemplo: Tenho um arquivo que cresce
> constantemente devido á entrega e recebimentos de email na companhia,
> então a aplicação disso seria como se fosse em stream (no quente). Os seja:
>
> Os dados vêm ---> aqui o script atuaria ---> daqui pra frente seria a
> gravação em banco, coisa que já providenciei.
>
> Sendo assim, para cada bloco de informação do tipo abaixo ele me daria
> apenas o que eu quero em modo stream, dessa forma:
>
> Delivered-To: [EMAIL PROTECTED] ===> Isso eu quero
> To: [email protected] ====> Isso eu quero
> In-Reply-To: <[EMAIL PROTECTED]>
> References: <[EMAIL PROTECTED]>
> From: [EMAIL PROTECTED]
> Sender: [email protected] =====> Isso eu quero
>
> E guardaria em arquivo (ou banco em meu caso), limparia as variáveis -
> caso use variáveis para esse serviço - e passaria para o próximo bloco,
> sacaram?
>
> Essa parte de ler um arquivo em seqüencia, extrair apenas o necessário é
> que eu não sei fazer em shell. Se eu dou um cat e grep ele já traz o que
> eu quero, e ignora o resto. Daí pra frente terei o resultado só do
> primeiro grep, o resto será ignorado.
>
> Alguém sabe como posso fazer com que um script shell trabalhe dessa
> forma? Extraindo em stream apenas o que eu quero?
>
> Abraços amigos!
>
> 

Responder a