Unix Shell循环文件并替换文本

hor*_*_vr 2 unix shell loops sed

我对这个东西相当新,我需要一个shell文件来遍历文件夹中的所有".xml"文件,并进行一些文本替换.到目前为止,我已经想出了这个:

sed "s/old_text/new_text/g" testfile.xml -i
Run Code Online (Sandbox Code Playgroud)

但是,我希望它在当前文件夹中的所有xml文件上运行,而不仅仅在"testfile.xml"上运行.此外,如何备份原始文件?

任何输入都受到欢迎!非常感谢!

cho*_*oba 5

sed在所有xml文件上运行,只需指定通配符即可

sed "s/old_text/new_text/g" *.xml -i
Run Code Online (Sandbox Code Playgroud)

要创建备份,只需在以下后面指定扩展名-i:

sed "s/old_text/new_text/g" *.xml -i~
Run Code Online (Sandbox Code Playgroud)

请注意,通常使用XML感知工具来处理XML通常会更好.