文字列を含むファイルに基づいて複数のファイルを検索する

文字列を含むファイルに基づいて複数のファイルを検索する

電子メールを含むテキストファイルがあるとしましょう。

abd3@dom
abd2@dom
sdklf2@lksd
sd@gm

grepの小さなbashスクリプトが必要です。ファイルに含まれている電子メールを見つけて、一致するファイルを印刷します。

そうすると期待する

**this email abd3@dom found in file8560.txt**
**this email abd2@dom found in file750.txt**
**this email sdklf2@lksd found in file970.txt**
**this email sd@gm found in file2690.txt**

ベストアンサー1

メールアドレスを検索するファイルのリストがわかっている場合は、次のことができます。

grep -F -H -w -o -f email_list_file list of files to search | awk -F: '{print "*** this email " $2 " found in " $1 "**}'

'-w'フラグは減らすしかし、これはEdが自分の意見で指摘した誤検知の一部を取り除くわけではありません。印刷には「-o」フラグが必要です。ただ住所を含む完全な行ではなく電子メールアドレス。

おすすめ記事