2013-07-25 46 views
56

我有一個文件A,其中有100個單詞,用新行分隔。我想搜索文件B以查看文件A中是否出現任何單詞。如何用單詞列表grep

我嘗試以下但不工作對我說:

grep -F A B 

回答

77

您需要使用的選項-f

$ grep -f A B 

選項-F做一個固定的字符串的搜索中,作爲-f是指定一個模式文件。如果文件只包含固定字符串而不是正則表達式,則可能需要兩者。

$ grep -Ff A B 

您也可以只匹配整個單詞-w選項:對於所有可能的參數和他們做的事情的描述

$ grep -wFf A B 

man grep

+4

+1'-w'選項的解釋。 –

+3

如果您不想使用正則表達式,-F只是一種優化? – phoenix

+1

@鳳凰正好。 –

0

要找到一個很長的大文件的單詞列表,它可以更有效地使用egrep的:

remove the last \n of A 
$ tr '\n' '|' <A> A_regex 
$ egrep -f A_regex B