GNU bug report logs - #23185
GNU grep matching discrepancy between -a/--text and not.

Previous Next

Package: grep;

Reported by: Shlomi Fish <shlomif <at> shlomifish.org>

Date: Sat, 2 Apr 2016 12:06:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#23185: closed (GNU grep matching discrepancy between
 -a/--text and not.)
Date: Wed, 06 Apr 2016 06:57:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 5 Apr 2016 23:56:22 -0700
with message-id <5704B316.2020601 <at> cs.ucla.edu>
and subject line Re: bug#23185: GNU grep matching discrepancy between -a/--text and not.
has caused the debbugs.gnu.org bug report #23185,
regarding GNU grep matching discrepancy between -a/--text and not.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
23185: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23185
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Shlomi Fish <shlomif <at> shlomifish.org>
To: bug-grep <at> gnu.org
Subject: GNU grep matching discrepancy between -a/--text and not.
Date: Sat, 2 Apr 2016 15:00:12 +0300
Hi all,

as can be seen in this repository:

https://github.com/shlomif/gnu-grep-trailing-space-and-CR-on-riddles.he-false-match

GNU grep says a document it suspects to be binary matches without -a/--text and
doesn't match it or return results with that flag applied. perl sides with the
latter.

I'm on Mageia linux x86-64 v6 and have built GNU grep from the latest git
commit ( c767ed70eca9a82d76f07dcdbcaafa21ec7f86d6 ) to test.

Regards,

	Shlomi Fish

P.S: it seems the build system uses gperf but configure does not verify that it
exists in the path.

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
Interview with Ben Collins-Sussman - http://shlom.in/sussman

Can I SCO now? Sue who you wanna sue, it doesn't matter anyhoo, it's time to
litigate.
    — http://www.shlomifish.org/humour/bits/Can-I-SCO-Now/

Please reply to list if it's a mailing list post - http://shlom.in/reply .


[Message part 3 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Shlomi Fish <shlomif <at> shlomifish.org>, 23185-done <at> debbugs.gnu.org
Subject: Re: bug#23185: GNU grep matching discrepancy between -a/--text and
 not.
Date: Tue, 5 Apr 2016 23:56:22 -0700
[Message part 4 (text/plain, inline)]
Thanks for pointing out the seeming inconsistency. The documentation mentions 
the issue but is perhaps not clear enough, so I installed the attached patch.

The input file contains NUL bytes and so is treated as binary data, and the grep 
documentation (secton "File and Directory Selection", option "--binary-files") 
says "When processing binary data, ‘grep’ may treat non-text bytes as line 
terminators". This behavior was added to GNU grep in release 2.21 dated 2014, 
partly for performance reasons.

There are two instances in riddle.he of a space followed by a NUL byte, so

  grep -P '[ \t]\r?$' riddles.he

finds a match when the $ matches just before the NUL byte.

-a is one way to get the behavior you evidently expected. Another (perhaps 
better) way is -z. The command:

  grep -zP '[ \t]\r?\n' riddles.he

outputs nothing and exits with status 1.
[0001-Give-another-example-of-binary-file-processing.patch (text/x-diff, attachment)]

This bug report was last modified 9 years and 132 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.