【问题标题】:sed formatting double quotes single quotessed格式化双引号单引号
【发布时间】:2013-08-19 18:14:35
【问题描述】:

我正在使用 sed 替换 text.xml 中的单词。

text.xml 如下所示:

some line
<state name='generate'>
    notify
</state>
some line

我正在尝试将“通知”一词替换为来电者“ 到目前为止我的命令是:

sed -i "/<state name=\'generate\'>/,/<\/state>/s/notify/caller/" ./test.xml

我在 sed 和 之间给出了一系列的行。在这两行之间是我用调用者替换的“通知”这个词。

我不确定这是否是引用问题。感谢洞察力,谢谢。

编辑:我通过删除生成周围的转义字符来让它工作。

sed -i "/<state name='generate'>/,/<\/state>/s/notify/caller/" ./test.xml

有人知道背后的原因吗?

【问题讨论】:

  • 使用双引号夹住整个表达式时,似乎不需要转义单引号。我尝试了您尝试使用单引号夹层的第一个命令,而外壳似乎正在等待某些东西..不太确定。
  • 使用单引号一次时需要转义字符。如果你有两个,它们就会相互抵消,因为有开始和结束。

标签: regex sed quotes


【解决方案1】:

使用双引号将整个表达式夹在中间时,您似乎不需要转义单引号... – 悉达多

我通过删除 generate 周围的转义字符来让它工作。 – 用户2661842

【讨论】:

  • 我很欣赏您在这里尝试做的事情,但就目前而言,这并不能真正做出回答。你能花点时间把它编辑成更好的形状吗?
猜你喜欢
  • 2019-05-21
  • 1970-01-01
  • 2020-05-26
  • 2015-11-06
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2016-08-10
相关资源
最近更新 更多