【发布时间】:2013-07-25 16:08:37
【问题描述】:
我有一个文件 A,里面有 100 个单词,用新行分隔。我想搜索文件 B 以查看文件 A 中是否出现任何单词。
我尝试了以下方法,但对我不起作用:
grep -F A B
【问题讨论】:
标签: grep
我有一个文件 A,里面有 100 个单词,用新行分隔。我想搜索文件 B 以查看文件 A 中是否出现任何单词。
我尝试了以下方法,但对我不起作用:
grep -F A B
【问题讨论】:
标签: grep
您需要使用选项-f:
$ grep -f A B
选项-F 执行固定字符串搜索,其中-f 用于指定模式文件。如果文件只包含固定字符串而不包含正则表达式,您可能需要两者。
$ grep -Ff A B
您可能还需要 -w 选项来仅匹配整个单词:
$ grep -wFf A B
阅读man grep,了解所有可能的论点及其作用。
【讨论】:
要在大文件中查找很长的单词列表,使用 egrep 会更高效:
remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
【讨论】: