2
我有以下內容的文件(這是從Java .properties
文件):在屬性名替換點,但沒有在屬性值
product.company.url=http://www.example.com/
product.version=1.3.2
我需要替換所有點的屬性名,但不屬於財產價值。所以,我需要的輸出將是:
product_company_url=http://www.example.com/
product_version=1.3.2
我已經試過sed -r 's/\.(\w+)([^=]*)/_\1\2/' product.default.properties
但這只是取代了第一點。我想我可能不得不使用lookahead或lookbehinds,但我不知道這是否可能,因爲斷言的長度是可變的。在屬性名稱中也可能有可變數量的點。
是否可以用單線程來做到這一點?
這是完美的!非常感謝(我還不能接受答案,將在10分鐘內完成) – jvallver 2013-02-28 16:53:19
@jvallver我的答案可能會解決您的問題。但是我會說,java屬性文件中prop name的命名約定是用「dot」,而不是下劃線。 – Kent 2013-02-28 16:57:13
我知道,但我在使用EnvInject插件解釋屬性中帶有點的屬性時遇到了問題。我試圖將這作爲一個具體構建中的解決方法,但通常我使用點分隔的屬性:) – jvallver 2013-02-28 16:59:19