Qiang Li Qiang Li - 1 month ago 24
Bash Question

escape double quote in grep

I wanted to do grep for keywords with double quotes inside. To give a simple example:

echo "member":"time"|grep -e "member\""


That does not match. How to fix it?

cmh cmh
Answer

The problem is that you aren't correctly escaping the input string, try:

echo "\"member\":\"time\"" |grep -e "member\""

Alternative you can use unescaped double quotes within single quotes:

echo '"member":"time"' |grep -e 'member"'

It's a matter of preference which you find clearer although the second approach prevents you from nesting your command within another set of single quotes (e.g. ssh 'cmd').

Comments