假设我们有两个文件。
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? 你的输入文件包含什么行尾?