如何在两个html标签之间替换数字

时间:2014-07-29 16:55:20

标签: bash sed

我想替换两个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

1 个答案:

答案 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