2013-08-19 143 views
0

我使用sed替换text.xml中的单词。sed格式化双引号单引号

的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 

有没有人知道背后的原因?

+0

看起来你不需要在使用双引号夹住整个表达式时使用单引号。我尝试了用单引号三明治尝试的第一个命令,而shell似乎在等待什么。不太确定。 – Siddhartha

+0

一次使用单引号时需要转义字符。如果你有两个人,他们会自行取消,因为有一个开始和结束。 – Sazzy

回答

-1

看来你不需要使用双引号时夹住整个表达式逃脱单引号... - 悉达多

我把它通过删除转义字符周围产生的工作。 - user2661842

+0

我很欣赏你在这里试图做的事情,但就目前而言,这并不能真正回答。你可以花一点时间把它编辑成更好的形状吗? – Flexo