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

1

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

Eg :

To: [email protected] (abc123)

To: [email protected],hk (Jim)

To: [email protected]\ (Jim)

Saída esperada :

aol.com

yahoo.com,hk

yahoo.com\
    
por user196214 21.10.2016 / 01:29

3 respostas

0

Tente:

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

Ou:

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

Este mantém um espaço final:

grep -Eo '@.* ' input
    
por 21.10.2016 / 01:50
0

Eu usaria o regex compatível com perl do GNU grep:

grep -oP '(?<=@)\S+'
    
por 21.10.2016 / 17:08
0

Você pode simplificar e usar o corte:

cut -d'@' -f2

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

grep 'To:' emails.txt | cut -d'@' -f2
    
por 21.10.2016 / 19:43