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
Description: OpenPGP digital signature