0
我有一個看起來像這樣一個bean的配置XML文件:使用sed動態修補bean配置XML文件?
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>MyDriver</value>
</property>
<property name="url">
<value>#####</value>
</property>
<property name="username">
<value>myUser</value>
</property>
<property name="password">
<value>myPassword</value>
</property>
</bean>
</beans>
我想用sed來替換字符串#####
動態。
#####
可以具有不同的值,例如, myUrl1
,myUrl2
等,並應替換爲另一個給出myUrlX
所以結果應該是這樣的:
...
<property name="url">
<value>myUrlX</value>
</property>
...
到目前爲止,我只得到了接近與下面的sed命令的解決方案:
sed -n "1h;1!H;${;g;s|\(<property [^>]*>.*<value>\).*\(</value>.*</property>\)|\1myUrl\2|g;p;}" test.xml
但是,這會替換我的XML文件中的myPassword
字符串,而不是#####
。
任何人都可以給我一個提示,我需要改變我的sed命令嗎?
非常感謝!
非常感謝!這解決了我的問題! – Peter 2011-02-07 20:24:41