2011-12-22 70 views

回答

2
sed -i 's:envid="":envid="QA":g' *.xml 

應該在你的*.xml文件與envid="QA"取代的envid=""每一次出現。但是不要忘記,XML文件可以被強制格式化,例如這不會被取代:

<tag envid=''> 

這也不

<tag envid= 
    ""> 
0

我沒有足夠的上下文來給你一個確切的答案。然而,試圖從以下獲得靈感:

perl -pi -e 's/foo/bar/g' *.xml 
1

你是什麼意思開放?要更改文件,您必須打開它,但可能通過與文本編輯器不同的程序來打開它。例如:

sed -i~ 's/envid="null"/envid="QA"/g' *.xml 

應該在你的XML文件envid="QA"替換所有的字符串envid="null",留下一個備份與~後綴。如果在一條線上需要幾個替代品,則需要g

雖然這樣改變xml時要小心。如果任何xml文件包含字符串envid="null"(attibute xenvid,元素內的文本),該腳本也會替換它。爲了安全起見,我會使用類似xsh

xsh 'for //@envid[.="null"] set . "QA" ; save :b' -F *.xml 
+1

'-i'的是GNU的一個特徵的sed – hop 2011-12-22 09:23:53

相關問題