【发布时间】:2014-09-23 00:31:41
【问题描述】:
我有一个 sed 的具体案例。
作为构建过程的一部分,我们需要在多个模块 (pom.xml) 文件中查找所需工件的版本号并将其替换为新创建的标记名称。
我们使用的命令是这样的:
find . -name "*.xml" -print0 | xargs -0 sed -i 's/6\.0\.0\.0/6.0.0.0.001/g'
我们的边缘情况是这样的:
有些模块具有相似的版本号,但已经是来自我们存储库的冻结版本。这些不需要更改。
诸如<modulename-version>modulename-6.0.0.0.016</modulename-version> 之类的条目存在于 pom.xml 中,但不需要更改。
有没有办法用 sed 忽略 6\.0\.0\.0\.\d{3} 的模式?
整个设置旨在通过我们的远程构建服务器上的 python-fabric 无人值守地运行,我们真的不想在晚上醒来尝试解决找不到模块 modulename-6.0.0.0.001.016.jar 的问题!
在这个领域的任何帮助将不胜感激!
【问题讨论】:
标签: regex unix replace sed find