将多个模式的文件传递给grep

假设我们有两个文件。

match.txt :包含要匹配的模式的文件:

fed ghi tsr qpo 

data.txt :包含文本行的文件:

 abc fed ghi jkl mno pqr stu vwx zyx wvu tsr qpo 

现在,我想发出一个应该从data.txt返回第一行和第三行的grep命令:

 abc fed ghi jkl zyx wvu tsr qpo 

…因为这两行中的每一行都匹配match.txt中的一个模式。

我努力了:

 grep -F -f match.txt data.txt 

但是不会返回任何结果。

grep info: GNU grep 2.6.3 (cygwin)
操作系统信息: Windows 2008 R2

更新: 修复是使用这个命令: tr -d "\r" <match.txt | grep -F -f - text.txt tr -d "\r" <match.txt | grep -F -f - text.txt

似乎grep不正确地尊重窗口行尾(CR / LF)的匹配文件通过-f标志呈现给它。

我只是尝试了你给的例子,它按预期工作。

 [~] $ grep -F -f match.txt data.txt abc fed ghi jkl zyx wvu tsr qpo 

你能提供更多的信息吗? 你在运行什么操作系统? 什么版本的grep? 你的输入文件包含什么行尾?