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! > >
