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

时间:2010-10-26 14:21:04

标签: windows grep

假设我们有两个文件。

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

fed ghi
tsr qpo

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

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

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

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

似乎grep没有正确地遵守通过-f标志呈现给它的匹配文件的Windows行结尾(CR / LF)。

1 个答案:

答案 0 :(得分:2)

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

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

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