使用sed编辑文件上的字符串值



我有一个清单文件,其中包含以下信息:

Bundle-ManifestVersion: 2
Bundle-Name: Runtime (2.7)
Bundle-SymbolicName: Runtime;singleton:=true
Bundle-Version: 1.0.5.qualifier

我需要通过bash命令更新它。是否可以使用sed命令来完成。我需要更新捆绑包版本如下:

Bundle-Version: 1.0.6.qualifier

现在我可以这样做:

sed -i '' "s/Bundle-Version: 1.0.5.qualifier/Bundle-Version: 1.0.6.qualifier/g" MANIFEST.MF

但我想找到一种方法,不替换整行,只替换版本。

您不必替换整行,您可以执行:

s/1.0.5.qualifier/1.0.6.qualifier/

只是替换线路的那部分。但是,这将替换任何行上的字符串,而不仅仅是Bundle-Version行。您可以使用地址表达式来限制它:

/^Bundle-Version:/s/1.0.5/1.0.6/

不需要使用g修饰符,因为版本号只需要在行中替换一次。

最新更新