[英]Replace version number in file with sed in Bash script
在我的project.pro
文件中,我有:
DEFINES += VERSION=\\\"1.13.1\\\"
我想用 Bash 脚本中的新版本号替换当前版本号:
VERSION_MAJOR=1
VERSION_MINOR=14
VERSION_PATCH=1
sed -i "s/\([0-9]+.[0-9]+.[0-9]+\)/\1${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}/" project.pro
为什么这不起作用?
到目前为止,我已经设法要么根本没有匹配项,要么进行了一些奇怪的仅替换最后一个数字的替换。
你可以使用这个sed
:
sed -i.bak -E "s/[0-9]+\.[0-9]+\.[0-9]+/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH/" project.pro
您尝试中的问题很少:
-E
), +
不能不转义地使用。\\1
。 PS: .bak
是备份文件的扩展名,以便您可以在替换错误的情况下获取原始文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.