方法一: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://images.cnblogs.com/OutliningIndicators/ContractedBlock.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'