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