Uma solução bem fulera em materia de regex:

lazlo:~# echo 'From: "Fulano da Silva" <[EMAIL PROTECTED]>' | sed
's/^From:.*<\(.*\)>/\1/'
[EMAIL PROTECTED]


Mas resolve a maioria dos casos..

lazlo:~# echo 'From: "Fulano da <Silva" <[EMAIL PROTECTED]>' | sed
's/^From:.*<\(.*\)>/\1/'
[EMAIL PROTECTED]
lazlo:~# echo 'From: "Fulano da <Silva>" <[EMAIL PROTECTED]>' | sed
's/^From:.*<\(.*\)>/\1/'
[EMAIL PROTECTED]


Flavio do Carmo Junior

On Nov 8, 2007 3:21 PM, Ricardo <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Galera, estou com um probleminha que meus conhecimentos em shell não
>  estão conseguindo solucionar.
>
>  Tenho que retirar de uma mail-box o endereço de e-mail que fica na
>  linha From: desse arquivo. Dando um 'grep "^From: " arq', ele me
>  retorna a linha inteira, que pode ser um dos dois padrões a seguir:
>
>  From: "Fulano da Silva" <[EMAIL PROTECTED]>
>
>  ou
>
>  From: <[EMAIL PROTECTED]>
>
>  Minha dificuldade está em tirar somente o endereço de e-mail dessa
>  linha, pq preciso guarda-la em uma variável e adiciona-la como parte
>  do nome de um arquivo.
>
>  Alguma luz??????
>
>  Obrigadão....
>
>  

Responder a