GNU bug report logs - #18377
piping output through egrep -- escaping of "+" only needed sometimes. Why?

Previous Next

Package: grep;

Reported by: terrygalant.lists <at> fastest.cc

Date: Mon, 1 Sep 2014 02:17:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Norihiro Tanaka <noritnk <at> kcn.ne.jp>
To: terrygalant.lists <at> fastest.cc
Cc: 18377-done <at> debbugs.gnu.org
Subject: bug#18377: piping output through egrep -- escaping of "+" only needed sometimes. Why?
Date: Mon, 01 Sep 2014 20:44:35 +0900
"egrep 'libstdc++'" is taken as "egrep 'libstd(c+)+'", although I don't
see that this behaviour is clearly defined in POSIX.  Therefore, as Paul
says, it's synonymous with 'libstdc(c*)'.


On Sun, 31 Aug 2014 19:07:48 -0700
terrygalant.lists <at> fastest.cc wrote:

> Hi all,
> 
> I'm trying to pipe of output of a command through egrep.
> 
> If I do this
> 
> 	ldconfig -p | egrep "libstdc++"
> 		libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
> 		libstdc++.so.6 (libc6) => /usr/lib/libstdc++.so.6
> 
> that *IS* the answer I expect.
> 
> But if I simply add a ".so" to the egrep target, it returns nothing
> 
> 	ldconfig -p | egrep "libstdc++.so"
> 		(empty)
> 
> If I *escape* the two "+", it works again.
> 
> 	ldconfig -p | egrep "libstdc\+\+.so"
> 		libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
> 		libstdc++.so.6 (libc6) => /usr/lib/libstdc++.so.6
> 
> Why do I need to escape the "+" in the last case, but not in the first?
> 
> Terry
> 
> 





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

Previous Next


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