On Fri, Jul 28, 2006 at 01:53:32PM -0400, Daniel Einspanjer wrote:
Using the following files both of which had dos2unix run on them to be
sure
there were no line-ending issues:
===== data.txt =======
abc
defghi
^
======================
===== filter.txt =====
abc
deghi
======================
These commands work as expected:
$ fgrep -f filter.txt data.txt
$ tail -1 data.txt | fgrep -wf filter.txt
But this command fails to return ghi:
$ fgrep -wf filter.txt data.txt
So it seems that after a match is discarded because it is not a full word
(due to the -w flag), subsequent full word matches are also discarded.
Maybe it's a typo in your simplified test case but fgrep -w shouldn't
match
defghi since the input is deghi.
I've tested this with the grep 2.5.1 installed on a recent Gentoo
GNU/Linux
machine and it behaves properly so I am guessing it might be a problem
specific to the cygwin port.
I tried this test on Cygwin, Gentoo, and FC5 and got consistent results
on all. If I remove the 'f' in defghi from data.txt then it also works
consistently on all three systems, i.e., it returns:
abc
deghi
cgf