方法一:python脚本
http://www.python.org/ftp/python/2.7/
1、tar zxvf Python-2.7.tar
2、cd Python-2.7
3、./config
4、make
5、make install
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
import xml.etree.ElementTree
as
ET
import os
import sys
def update_file(input, output):
tree = ET.parse(input)
doc = tree.getroot()
acls = doc.findall( ' .//acl ' )
for acl in acls:
if (cmp(acl.attrib. get ( ' user ' ), ' scm_controller ' ) == 0 ):
acl.clear()
acl. set ( ' user ' , ' scm_controller ' )
a = ET.Element( ' modified_by ' )
a.text = ' hua '
acl.append(a)
a = ET.Element( ' modified_date ' )
a.text = ' 2010.07.13.12.12.18 '
acl.append(a)
a = ET.Element( ' all ' )
acl.append(a)
tree.write(output, " UTF-8 " , True)
def update_dir(path):
print " processing %s " % path
items = os.listdir(path)
for item in items:
name = os.path.join(path, item)
if (os.path.isdir(name)):
update_dir(os.path.join(name))
elif (os.path.isfile(name) and cmp(item, ' fileattr.xml ' ) == 0 ):
update_file(name, name)
def main(argv):
update_dir(argv[ 1 ])
main(sys.argv)
import os
import sys
def update_file(input, output):
tree = ET.parse(input)
doc = tree.getroot()
acls = doc.findall( ' .//acl ' )
for acl in acls:
if (cmp(acl.attrib. get ( ' user ' ), ' scm_controller ' ) == 0 ):
acl.clear()
acl. set ( ' user ' , ' scm_controller ' )
a = ET.Element( ' modified_by ' )
a.text = ' hua '
acl.append(a)
a = ET.Element( ' modified_date ' )
a.text = ' 2010.07.13.12.12.18 '
acl.append(a)
a = ET.Element( ' all ' )
acl.append(a)
tree.write(output, " UTF-8 " , True)
def update_dir(path):
print " processing %s " % path
items = os.listdir(path)
for item in items:
name = os.path.join(path, item)
if (os.path.isdir(name)):
update_dir(os.path.join(name))
elif (os.path.isfile(name) and cmp(item, ' fileattr.xml ' ) == 0 ):
update_file(name, name)
def main(argv):
update_dir(argv[ 1 ])
main(sys.argv)
方法二:UE
<acl user="swordbuilder">(.*\n)*.*</acl>
方法三:shell脚本
find -name 'fileattr.xml' | xargs perl -pi -e 's|<acl user="swordbuilder">(.*\n)*.*</acl>|<acl user="swordbuilder"><all /></acl>|g'