2011-12-22 74 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

相关问题