我想替换两个HTML标记之间的数字,但仍然有问题,命令sed不起作用:
<p key=SaveFile>0</p>
<p key=SaveFile>1</p>
代码:
sed -i 's/\<p key\=SaveFile\>0\<\/p\>/<p key=SaveFile>1<\/p>/' newfile.xml
答案 0 :(得分:3)
如果您使用s
或|
之类的@
使用其他分隔符,则会更容易:
echo "<p key=SaveFile>0</p>" | sed 's|<p key=SaveFile>0</p>|<p key=SaveFile>1</p>|'
如果您想要替换两个代码之间的任何数字,只需使用[0-9]\+
或[0-9]+
(使用选项-r
):
echo "<p key=SaveFile>1234</p>" | sed 's|<p key=SaveFile>[0-9]\+</p>|<p key=SaveFile>1</p>|'
输出:
<p key=SaveFile>1</p>
申请可以
sed -i 's|<p key=SaveFile>0</p>|<p key=SaveFile>1</p>|' newfile.xml
或g
:
sed -i 's|<p key=SaveFile>0</p>|<p key=SaveFile>1</p>|g' newfile.xml