GNU bug report logs - #20443
grep pattern is forward slash + star

Previous Next

Package: grep;

Reported by: Clay Hansen <clayh <at> ayre.com>

Date: Mon, 27 Apr 2015 19:31:04 UTC

Severity: normal

Tags: notabug

Done: Eric Blake <eblake <at> redhat.com>

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: Eric Blake <eblake <at> redhat.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#20443: closed (grep pattern is forward slash + star)
Date: Mon, 27 Apr 2015 20:54:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 27 Apr 2015 14:53:02 -0600
with message-id <553EA1AE.60604 <at> redhat.com>
and subject line Re: bug#20443: grep pattern is forward slash + star
has caused the debbugs.gnu.org bug report #20443,
regarding grep pattern is forward slash + star
to be marked as done.

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


-- 
20443: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20443
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Clay Hansen <clayh <at> ayre.com>
To: bug-grep <at> gnu.org
Subject: grep pattern is forward slash + star
Date: Mon, 27 Apr 2015 13:05:11 -0600
Dear Coders,

if I echo 'a  *  z' | grep '/*' it succeeds and prints 'a  *  z'.
Can this be right?

echo 'a  *  z' | grep -F '/*' fails as expected.

Tested in Salix on grep-2.14 and freshly compiled grep-2.21.

Thanks,



[Message part 3 (message/rfc822, inline)]
From: Eric Blake <eblake <at> redhat.com>
To: Clay Hansen <clayh <at> ayre.com>, 20443-done <at> debbugs.gnu.org
Cc: GNU bug tracker automated control server <control <at> debbugs.gnu.org>
Subject: Re: bug#20443: grep pattern is forward slash + star
Date: Mon, 27 Apr 2015 14:53:02 -0600
[Message part 4 (text/plain, inline)]
tag 20443 notabug
thanks

On 04/27/2015 01:05 PM, Clay Hansen wrote:
> Dear Coders,
> 
> if I echo 'a  *  z' | grep '/*' it succeeds and prints 'a  *  z'.
> Can this be right?

Yes.  The regular expression '/*' says to match 0-or-more instances of
'/'. 'a  *  z' has zero instances of '/', so it matches and gets printed.

> 
> echo 'a  *  z' | grep -F '/*' fails as expected.

That's the literal pattern '/*', which does not appear in your input.

Remember, to convert the literal pattern of '/*' under -F to a regular
expression when not using -F, you must escape any characters that are
otherwise special to regular expressions.  Your second command would be
equivalent to:

echo 'a  *  z' | grep '/\*'

where the '*' now matches a literal star rather than being the
0-or-more-operator.

As such, this is not a bug, so I'm closing the report.  However, feel
free to ask further questions on the topic.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

[signature.asc (application/pgp-signature, attachment)]

This bug report was last modified 10 years and 111 days ago.

Previous Next


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