使用sed更新java属性文件中的属性
问题描述:
我想要一个简单的单线程与sed
来更新java属性值。如果不知道Java属性的当前设置是什么,它可能是空的)使用sed更新java属性文件中的属性
example.java.property=previoussetting
后
example.java.property=desiredsetting
答
假设的Linux的GNU的sed
之前,1个解决方案将是
编辑转义'。'字符即s/example\.java.../
每正确的注释肯特
replaceString=desiredsetting
sed -i "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties
如果您的sed不兑现-i
,那么你必须要管理。tmp文件,即
sed "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties > myTmp
/bin/mv -f myTmp java.properties
我希望这有助于。
答
这将更新文件:
sed -i "/property.name=/ s/=.*/=newValue/" yourFile.properties
这将打印到一个新文件
sed "/property.name=/ s/=.*/=newValue/" yourFile.properties > newFile.properties
这是你如何更新多个属性
sed -i -e "/property.name.1=/ s/=.*/=newValue1/" -e "/property.name.2=/ s/=.*/=newValue2/" yourFile.properties
的大师的sed可能会责怪我,因为这不是最恰当的方式来做到这一点(例如我并没有逃避这些问题),但是当你不想牺牲可读性时,我认为这是最好的选择。
这里的广泛讨论: How do I use sed to change my configuration files, with flexible keys and values?
[你尝试过什么?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-02-20 20:55:08