
個々の電子メールを見て、ホスト名を検索しようとしています。すべてのEメールには、「Eメールアドレス」[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 -d'@' -f2
たとえば、これらの電子メールを emails.txt という大容量ファイルに保存する場合:
grep 'To:' emails.txt | cut -d'@' -f2