Qiang Li
Qiang Li

Reputation: 10855

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 can I fix it?

Upvotes: 126

Views: 218346

Answers (1)

cmh
cmh

Reputation: 10937

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

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

Alternatively, 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').

Upvotes: 191

Related Questions