假设我们有两个文件。
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)。
答案 0 :(得分:2)
我刚刚尝试了你给出的例子,它按预期工作。
[~] $ grep -F -f match.txt data.txt
abc fed ghi jkl
zyx wvu tsr qpo
你能提供更多信息吗?你在运行什么操作系统?什么版本的grep?输入文件包含哪些行结尾?