メールアドレスからホスト名を取得する

メールアドレスからホスト名を取得する

個々のメールを調べてホスト名を取得しようとしています。各メールには、メール アドレス " [email protected]" の To: セクションがあります。取得しようとしているのは " 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 という 1 つの大きなファイルに保存されているとします。

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

関連情報