This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: --line-regexp option with null data
- From: "John Hein" <3fbmqnhaz4 at snkmail dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 16 Jul 2015 20:04:10 -0600
- Subject: Re: --line-regexp option with null data
- Authentication-results: sourceware.org; auth=none
- References: <CAAXzdLWo4nvaJBMOBYsOYeCdrgw_O=8CM_H_kwfxnU=AqnuOjA at mail dot gmail dot com>
Steven Penny svnpenn-at-gmail.com |cygwin_ml_nodigest| wrote at 20:29 -0500 on Jul 16, 2015:
> Consider this command:
>
> printf 'alpha\nbravo\ncharlie\n' | grep --line-regexp --quiet bravo
>
> grep sees 3 lines separated by newline, and matches the bravo line. Now consider
> this command:
>
> printf 'alpha\0bravo\0charlie\0' | grep --line-regexp --quiet bravo
>
> My thinking tells me that because I have not used `--null-data`, grep should see
> 1 or even 0 lines separated by newline, and fail to match a `bravo` followed by
> newline. However it does not, it succeeds just like the first command, why is
> this?
>
> Note I also tried this on Debian with Grep 2.2 and it works as expected.
>
> http://stackoverflow.com/q/31467045
cygwin grep is detecting the input as binary which seems to be
overriding the 'match the whole line' behavior of --line-regexp. Get
rid of --quiet to see that.
That does seem like a bug in the cygwin implementation of grep to me.
As a workaround for this simple example, you can add -a (aka --text)
to force it to treat the input as text.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple