Subject: piping output through egrep -- escaping of "+" only needed sometimes. Why?

From: [email-masked]
Date: Sun, 31 Aug 2014 19:07:48 -0700

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