This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: --line-regexp option with null data


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]