Linux grep中的转义双引号
我想对里面有双引号的关键词进行grep。举一个简单的例子:Linux grep中的转义双引号,linux,shell,Linux,Shell,我想对里面有双引号的关键词进行grep。举一个简单的例子: echo "member":"time" | grep -e "member\"" 这不匹配。如何修复它?问题是您没有正确转义输入字符串,请尝试: echo "\"member\":\"time\"" | grep -e "member\"" 或者,您可以在单引号中使用未加修饰的双引号: echo '"member":"time"' | grep -e 'member"' 虽然第二种方法阻止您将命令嵌套在另一组单引号中(例如,ss
echo "member":"time" | grep -e "member\""
这不匹配。如何修复它?问题是您没有正确转义输入字符串,请尝试:
echo "\"member\":\"time\"" | grep -e "member\""
或者,您可以在单引号中使用未加修饰的双引号:
echo '"member":"time"' | grep -e 'member"'
虽然第二种方法阻止您将命令嵌套在另一组单引号中(例如,
ssh'cmd'
),但您会发现这是一个更清楚的偏好问题。这会起作用吗<代码>echo's“member”:“time”| grep-e“member”几乎没有测试。它需要是echo'“member”:“time”| grep-e“member”
。这两种方法都是有效的,但我更喜欢显式转义,因为目的更明确。是的,如果你喜欢,可以编辑你的答案。可能有人更喜欢这个(+1)这个(使用反斜杠)对我来说,在Windows上不起作用。实际上它部分起作用,但我无法将输出重定向到文件。@RadimCernej我建议问一个Windows特定的问题-这似乎超出了本文的范围。