91

我有一个文件 A,里面有 100 个单词,用新行分隔。我想搜索文件 B 以查看文件 A 中的任何单词是否出现在其中。

我尝试了以下但对我不起作用:

grep -F A B
4

2 回答 2

130

您需要使用选项-f

$ grep -f A B

该选项-F执行固定字符串搜索,其中-f用于指定模式文件。如果文件只包含固定字符串而不包含正则表达式,您可能需要两者。

$ grep -Ff A B

您可能还需要-w仅匹配整个单词的选项:

$ grep -wFf A B

阅读man grep所有可能的论点及其作用的描述。

于 2013-07-25T16:12:51.927 回答
2

要在大文件中查找很长的单词列表,使用 egrep 会更有效:

remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
于 2014-12-16T15:22:08.370 回答