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

时间:2015-11-19 20:09:50

标签: bash unix sed

我有一个包含以下信息的清单文件:

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

我需要通过bash命令更新它。是否可以使用sed命令执行此操作。 我需要将bundle-version更新为这样:

Bundle-Version: 1.0.6.qualifier

现在我能够这样做:

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

但我希望找到一种不替换整行的方法,只需更换版本。

1 个答案:

答案 0 :(得分:0)

您不必更换整行,您可以这样做:

s/1\.0\.5\.qualifier/1.0.6.qualifier/

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

/^Bundle-Version:/s/1\.0\.5/1.0.6/

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