So completando a minha ideia anterior, e eu nao sabia q tu queria SÓ
os e-mials..
Segue com a regex:

lazlo:~# cat txt
Delivered-To: [EMAIL PROTECTED]
To: [email protected]
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
From: [EMAIL PROTECTED]
Sender: [email protected]
lazlo:~# tail -f txt | sed -rn 's/^(Delivered-To:|To:|Sender:) (.*)$/\2/p'
[EMAIL PROTECTED]
[email protected]
[email protected]


--

Flávio do Carmo Júnior



2008/5/15 Tiago Barcellos Peczenyj <[EMAIL PROTECTED]>:
> Eis um bom começo
>
> $ cat header
>
> Delivered-To: [EMAIL PROTECTED]
> To: [email protected]
> In-Reply-To: <[EMAIL PROTECTED]>
> References: <[EMAIL PROTECTED]>
> From: [EMAIL PROTECTED]
> Sender: [email protected]
>
> $ awk 'BEGIN{FS="[: ]+";} $1 == "Delivered-To" { print $2}' header
> [EMAIL PROTECTED]
>
> 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!
>>
>>
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
> "what does not kill us makes us stronger"
> 

Responder a