我正在尝试查看各个电子邮件并检索主机名。每封电子邮件都有一个“收件人:”部分,其中包含电子邮件地址“ [email protected]
”。我正在尝试检索“ aol.com
”
例如:
To: [email protected] (abc123)
To: [email protected],hk (Jim)
To: [email protected]\ (Jim)
预期产出:
aol.com
yahoo.com,hk
yahoo.com\
答案1
尝试:
sed 's/.*@\(.*\) .*/\1/g' input
或者:
awk -F '[@ ]' '{print $3}' input
这个保留了最后的空间:
grep -Eo '@.* ' input
答案2
我会使用 GNU grep 的 perl 兼容正则表达式:
grep -oP '(?<=@)\S+'
答案3
您可以保持简单并使用 cut:
cut -d'@' -f2
例如,如果您将这些电子邮件放在一个名为 emails.txt 的大文件中:
grep 'To:' emails.txt | cut -d'@' -f2