2016-11-13 44 views
0

我在XML文件中的以下行:變化值使用的sed

<domain-option name="security-domain" value="config2"/> 

我應該使用SED設置新的價值,它不應該依賴從當前值。我的意思是不是CONFIG2可以)我tyring

sed -i '/<domain-option name="security-domain"/!b;n;cvalue=new-value/>' test.xml 

應該用新的更換任何值

,但它創造了新的路線,請大家幫忙

+0

使用支持XML的工具來編輯XML文件。 – choroba

回答

2

如果您的XML文件是保證提供與此格式的一行數據,您只需要使用seds命令(代替),而不是你的複雜的解決方案:

sed -r -i 's/(<domain-option name="security-domain" value=")([^"]*)/\1anotherval/' test.xml 

我啓用-r選項以避免轉義括號。我創建了2組並重新發布第一組,並用新的組替換第二組(舊值)。

注意:如果您需要通過env進行更換。變量您必須在某個點退出單引號

newval=the_new_value 
sed -r -i 's/(<domain-option name="security-domain" value=")([^"]*)/\1'"$newval/" test.xml 
+0

它按預期工作。謝謝! – BigBoss