2015-11-19 99 views
-1

我有以下信息的清單文件:編輯字符串值使用的sed

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

我需要通過慶典命令來更新它。是否有可能使用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 

但我想找到一種方法,不替換整個線路,只需更換版本。

+2

是的,這是微不足道的。你有什麼問題?請顯示您的嘗試代碼。 – Barmar

+0

現在我可以這樣做:sed -i''「s/Bundle-Version:1.0.5.qualifier/Bundle-Version:1.0.6.qualifier/g」MANIFEST.MF,但我想要找到一種不能取代整條線路的方法,只需更換版本即可。 –

+1

's/1 \ .0 \ .5/1.0.6 /'會做到這一點 – Barmar

回答

0

您不必更換整條生產線,你可以這樣做:

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

只需更換線的一部分。但是,這將替換任何行上的字符串,而不僅僅是Bundle-Version行。您可以使用一個地址表達式,以限制它:

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

有沒有必要使用g修改,因爲版本號只需要一次就行了更換。

+0

謝謝!!我能夠這樣做 –