![sed 更新 xml 文件](https://linux22.com/image/506123/sed%20%E6%9B%B4%E6%96%B0%20xml%20%E6%96%87%E4%BB%B6.png)
我想更新
<MySettingsSettings enabled="false" logFilePath="E:\server.log" />
到
<MySettingsSettings enabled="true" logFilePath="D:\server.log" />
我如何通过 sed 做到这一点?或者有没有其他方法可以在 Windows 服务器中更新?
答案1
我的建议是,您使用一种能够正确解析和更新 XML/HTML 文档的真正的编程语言。从长远来看,使用 sed 更新 XML/HTML 可能会失败。
答案2
可以按照以下方式对您的示例进行简单替换:
sed -e 's/enabled="true"/enabled="false"/g' -e 's/logFilePath="D:/logFilePath="C:/g' myfile.xml
但是,我同意 Zoredache 的警告,除非您只是在 XML 内部进行非常简单的字符串替换,否则最好使用具有专门用于解析 XML 的库的语言。
“sed one-liner”文件提供了大量方便的 sed 命令: