名前とスペースを含むファイルからのみ電子メールを削除する方法

名前とスペースを含むファイルからのみ電子メールを削除する方法

私は次のようなファイル名を持っています。 emaillist.txt:

[email protected]
[email protected]
Ilias Magkakos [email protected]
Nick Pipshow [email protected]
Don Quixote [email protected] 
Crazy Priest [email protected]
Fishroe Salad [email protected]
TaPanta Ola [email protected]
Laertis George [email protected]
Thiseas Sparrow [email protected]
Black Dreamer [email protected]
Callme Daddy [email protected]
Aggeliki Lykolouli [email protected]
Kompinadoros Yannnnis [email protected]
Serafino Titamola [email protected]
Joe Hard [email protected]
Bond James [email protected]
Endof Text [email protected]

ファイルに電子メールのみを保存し、名前と姓をすべて削除したいと思います。

答え1

ここでは、電子メールアドレスは常に各行のスペースで区切られた最後のフィールドであるように見えるため、次のようにできます。

awk '{print $NF}' < emaillist.txt

または、メールアドレスの後にスペースがない場合は、各行の最後のスペースまですべて削除します。

sed 's/.*[[:space:]]//' < emaillist.txt

@少なくとも1つの文字を含むスペースで区切られたすべての単語を検索するには、次のようにします(GNUgrepまたは互換を使用)。

grep -o '[^[:space:]]*@[^[:space:]]*' < emaillist.txt

関連情報