查找具有共同词的文件

sta*_*z77 4 shell shell-script text-processing

创建具有给定文件常用词的文件列表的最佳方法是什么。例如,如果我有:

$ ls
  mainFile  file1  file2  file file4
$ cat mainFile
  exquisite malicious sentient pulsating
  perspicacious one
  tawdry fumigate Baryshnikov O'connor
Run Code Online (Sandbox Code Playgroud)

我想列出cwd中包含mainFile. 解决这个问题的最佳方法是什么?

由于每行的字数mainFile不是恒定的,我在寻找解决方案时cut有点棘手。我试图从单词中创建一个字符串,然后将它们|放在grep -l "exquisite|malicious|etc" *命令中。我对任何方法都持开放态度,尽管这可能会更好。

dai*_*isy 6

首先为 mainFile 生成索引,

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

然后对固定字符串执行 grep:

grep -F -f mainFile.idx file*