我有大量的XML文件,其数据如下:
<amount quantity="1">12.00</amount>
如何用sed用其他东西替换12.00?
答案 0 :(得分:1)
您的问题中的信息不够,但要用12.00
替换24.00
的所有值,您可以这样做:
$ sed 's/>12\.00</>24.00</g' file.xml
如果您对结果感到满意,可以使用-i
选项将其存储回来:
$ sed -i 's/>12\.00</>24.00</g' file.xml
更糟糕的是:
$ sed -r 's_(<amount quantity="[0-9]+">)12.00(</amount>)_\124.00\2_g' file.xml
但是你应该正确解析XML而不是强制regexp做一些不是为它设计的东西。
答案 1 :(得分:0)
script.sh:
#!/bin/bash
xml="<amount quantity="1">12.00</amount>"
newxml=`echo $xml | sed -n "s/\(<amount[^>]*>\)\([^<]*\)\(<\/amount>\)/\113.37\3/gp"`
echo "$newxml"
结果:
$ ./script.sh
<amount quantity=1>13.37</amount>