在方括号内搜索带双引号的字符串

时间:2013-12-16 21:15:13

标签: regex sed

我在构建文件中使用SED并希望替换:

  • $反应[ “foo” 的] [0] [ “酒吧”]

  • 'b343443-45454-dfdf4545-trnj5ff56t'

目前我有:

s @ \ $ response [“foo”] [0] [“bar”] @ \'b343443-45454-dfdf4545-trnj5ff56t \'

然而,SED似乎不喜欢双引号。我也试过逃避它们,但得到同样的问题。有人能指出我如何更好地构建这个表达式吗?

2 个答案:

答案 0 :(得分:4)

双引号没问题,你需要转义[ ]

echo '$response["foo"][0]["bar"]'|sed 's/\$response\["foo"\]\[0\]\["bar"\]/\x27b343443-45454-dfdf4545-trnj5ff56t\x27/'                                           
'b343443-45454-dfdf4545-trnj5ff56t'

答案 1 :(得分:0)

我已经解决了这个问题,如果我在正确的位置发布,可能会更早地解决这个问题。如上所述,这是构建文件(XML文件)中的SED命令。双引号需要写为& quot ;要正确阅读。所以,这真的是我应该在PHING小组而不是SED小组中找到的东西。糟糕!