recuperando o nome do host do endereço de e-mail

recuperando o nome do host do endereço de e-mail

Estou tentando ler e-mails individuais e recuperar o nome do host. Cada e-mail possui uma seção Para: com um endereço de e-mail " [email protected]". Estou tentando recuperar apenas " aol.com"

Por exemplo:

To: [email protected] (abc123)

To: [email protected],hk (Jim)

To: [email protected]\ (Jim)

Resultado esperado:

aol.com

yahoo.com,hk

yahoo.com\

Responder1

Tentar:

sed 's/.*@\(.*\) .*/\1/g' input

Ou:

awk -F '[@ ]' '{print $3}' input

Este mantém um espaço final:

grep -Eo '@.* ' input

Responder2

Eu usaria as expressões regulares compatíveis com Perl do GNU grep:

grep -oP '(?<=@)\S+'

Responder3

Você pode mantê-lo simples e usar cut:

cut -d'@' -f2

Por exemplo, se você tivesse esses e-mails em um arquivo grande chamado emails.txt:

grep 'To:' emails.txt | cut -d'@' -f2

informação relacionada