【发布时间】: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
有人知道背后的原因吗?
【问题讨论】:
-
使用双引号夹住整个表达式时,似乎不需要转义单引号。我尝试了您尝试使用单引号夹层的第一个命令,而外壳似乎正在等待某些东西..不太确定。
-
使用单引号一次时需要转义字符。如果你有两个,它们就会相互抵消,因为有开始和结束。