bin/166842: bsdgrep(1) inconsistently handles ^ in non-anchoring positions

Jim Pryor dubiousjim at gmail.com
Thu Apr 12 16:04:26 UTC 2012


On Thu, Apr 12, 2012, at 11:37 AM, Jim Pryor wrote:
> On Thu, Apr 12, 2012, at 11:14 AM, John D. Hendrickson and Sara Darnell
> wrote:
> > Your problem is incorrect so there is no sol'n.
> > 
> > 	printf 'abc def' | grep -o '^[a-z]'
> > 
> > is only supposed to match against abc.
> > 
> > see grep(1) about pattern matching - there is plenty of online writeups,
> > esp posix ieee std.  see 
> > also "ant / antlr" for more about patterns and matching.
> > 
> > Jim Pryor wrote:
> > > The following reply was made to PR bin/166842; it has been noted by GNATS.
> > > From: Jim Pryor <dubiousjim at gmail.com>
> > >  $ printf 'abc def' | grep -o '^[a-z]'
> > >  will match against each of the letters in 'abc', but not against any of
> > >  the letters in 'def'.
> > >  dubiousjim at gmail.com
> 
> 
> Hi John, I'm sorry I didn't describe the problem adequately to prevent
> this misunderstanding.
> $ printf 'abc def' | grep -o '^[a-z]'
> Expected output: a
> That is in fact the output I get from Gnu grep.
> Actual output on FreeBSD:
> a
> b
> c
> 
> The matches against "b" and "c" are incorrect.

The text you quoted was intended to point out that the erroneous
behavior only extends to the end of the first word, not to all the
characters on the matched line.
-- 
dubiousjim at gmail.com



More information about the freebsd-bugs mailing list