通过shell脚本在所有情况下从xml文件中选择并替换字符串

通过shell脚本在所有情况下从xml文件中选择并替换字符串,xml,shell,Xml,Shell,我需要使用shell脚本在所有情况下替换xml文件中的字符串 科科斯群岛 使用者 25 1. sed不是处理xml的好工具。但是,由于您确信格式将保持不变。请参阅“问题”下的评论,您可以尝试使用以下sed行: sed -i 's#<name>CC</name>#<name>Carbon Copy</name>#g' file xsltproc是您正在寻找的工具for@Kent有没有可能不用写很多行代码,而是在一行中替换出现的代码?它应该替换并保

我需要使用shell脚本在所有情况下替换xml文件中的字符串

科科斯群岛 使用者 25 1.
sed不是处理xml的好工具。但是,由于您确信格式将保持不变。请参阅“问题”下的评论,您可以尝试使用以下sed行:

sed -i 's#<name>CC</name>#<name>Carbon Copy</name>#g' file

xsltproc是您正在寻找的工具for@Kent有没有可能不用写很多行代码,而是在一行中替换出现的代码?它应该替换并保存在同一个文件中。无需将xml保存在新文件中。这是可能的,例如使用sed。然而,正则表达式始终是xml的最后选择。它是脆弱的。。。如果你确定CC总是以这种格式出现,我可以发布一个sed答案。但是,如果格式可以更改,sed可能会很糟糕。@Kent是的,字符串的显示方式将始终与我已经尝试过的sed方式相同sed-i s~Carbon Copy~CC~g,但我不确定这是否正确,因为它工作顺利。还有一个查询,如果我有更多的.xml文件,有些可能已经有了复写副本。您能给我一个if-case逻辑吗?每当sed/awk读取文件CC时,只有它应该运行命令,否则它应该跳过该步骤\n您只需在所有xml上应用sed,如果没有CC,则不会更改任何内容