如何使用单词列表进行grep


81

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

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

grep -F A B

Answers:


112

您需要使用该选项-f

$ grep -f A B

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

$ grep -Ff A B

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

$ grep -wFf A B

阅读man grep以获取所有可能参数及其作用的描述。


4
如果您不想使用正则表达式,-F只是一种优化吗?
凤凰城

如何查找目录树B中文件A中所有单词的出现,只列出B中所有匹配项的文件名?
zealoushacker 2014年

2

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

remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.