UnixまたはLinuxのファイルセットのうち、どのファイルに単語セットの単語があるかを確認する方法は?

UnixまたはLinuxのファイルセットのうち、どのファイルに単語セットの単語があるかを確認する方法は?

ファイルセットがあるとしましょう。

fSet: f1, f2, f3, f4, f5, ........... f100

言うことがあります。

wSet: w1, w2, w3, w4, w5, ...........w100

wSetで1つ以上の単語を含むファイルをどのようにリストしますか?

そしてさらに進む

ファイルリストだけでなく、各ファイルに含まれる単語も言及するレポートを作成するにはどうすればよいですか?

そしてさらに進む

単語にIPアドレスなどの特殊記号が含まれている場合はどうすればよいですか?

答え1

努力する:

egrep 'w1|w2|...|w100' f1 f2 ... f100

あるいは、より良い方法は、単語をファイルに入れて実行することです。

grep -f filewithwords f1 f2 ... f100

答え2

grep --files-with-matches -e w1 -e w2 -e w3 -e w4 -e w5 f1 f2 f3

単語をファイルに入れます。

:> cat input
w1
w2
w3
w4
w5

:> grep --files-with-matches --file=input f1 f2 f3
f1
f3

:> grep -o --file=input f1 f2 f3
f1:w2
f3:w4
f3:w5

関連情報