我有一些XML文件。
目前,属性envid
设置为null
,我希望它在所有文件中都是QA
。如果不打开每个文件,我怎么能这样做?
答案 0 :(得分:2)
sed -i 's:envid="":envid="QA":g' *.xml
应在envid=""
个文件中用envid="QA"
替换*.xml
的每个出现次数。但是不要忘记XML文件可以被格式化,例如这不会被取代:
<tag envid=''>
这两个
<tag envid=
"">
答案 1 :(得分:1)
开场是什么意思?要更改文件,您必须打开它,但可能使用与文本编辑器不同的程序。例如:
sed -i~ 's/envid="null"/envid="QA"/g' *.xml
它应该用xml文件中的envid="null"
替换所有字符串envid="QA"
,留下带有~
后缀的备份。如果在一条线上需要几个替代品,则需要g
。
但是以这种方式更换xml时要小心。如果任何xml文件在某处包含字符串envid="null"
(attibute xenvid,元素内的文本),脚本也将替换它。为安全起见,我使用的是xsh:
xsh 'for //@envid[.="null"] set . "QA" ; save :b' -F *.xml
答案 2 :(得分:0)
我没有足够的背景来给你一个确切的答案。但是,尝试从以下方面获取灵感:
perl -pi -e 's/foo/bar/g' *.xml