抽出する必要があるメールアドレスのリストがたくさんありますが、正しい方法が見つかりません。
データも同様に構成されています。
Patabee meeta needo [email protected] pizz bees
Needo [email protected] hama lines question
unix search exchange [email protected] extracts
私のデータで一貫しているのは、Eメールドメインです。
現在私は...
grep -oniT @outlook.com /path/to/file/of/emails/and/such.txt
良い出力を返します..
3624 :@outlook.com
3625 :@outlook.com
3626 :@outlook.com
3630 :@outlook.com
3631 :@outlook.com
3632 :@outlook.com
3633 :@outlook.com
3634 :@outlook.com
3635 :@outlook.com
ただし、ドメイン(現在検索しているドメイン)だけでなく、完全な電子メールアドレスを選択するにはこの情報が必要です。
grepに行全体ではなく一致する文字列を検索するフィールド全体を選択させるにはどうすればよいですか?
ベストアンサー1
以下は、以下を使用するソリューションです。grep:
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" /path/to/file/of/emails/and/such.txt
ファイルのすべてのメールアドレスを取得します。特定のドメインとのみ一致するように正規表現を調整する必要があります。
-E, --extended-regexp は PATTERN を拡張正規表現として解釈します。
-o、--only-matching一致する行のうち、一致する(空でない)部分のみを印刷します。各部分は別々の出力行に表示されます。