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