共通の単語を含むファイルを探す

共通の単語を含むファイルを探す

与えられたファイルと共通の単語を持つファイルのリストを作成する最良の方法は何ですか?たとえば、次のような場合があります。

$ ls
  mainFile  file1  file2  file file4
$ cat mainFile
  exquisite malicious sentient pulsating
  perspicacious one
  tawdry fumigate Baryshnikov O'connor

.cwd​​このmainFile問題を解決するための最良の方法は何ですか?

1行あたりの単語数がmainFile一定ではないので、cutいくつかのトリックを使って解決策を見つけました。単語で文字列を作成し、それをコマンド|で区切って入れようとしますgrep -l "exquisite|malicious|etc" *。私はどのアプローチでも開いていますが、これはより良いかもしれません。

ベストアンサー1

まず、mainFileのインデックスを作成し、

sed 's/ /\n/g' mainFile | sort | uniq > mainFile.idx

その後、固定文字列をgrepします。

grep -F -f mainFile.idx file*

おすすめ記事