sed
の単純なライナーを使用して、Javaプロパティ値を更新したいとします。 Javaのプロパティの現在の設定が何であるかを知らなくても、それはsedを使用してJavaプロパティファイル内のプロパティを更新する
前
example.java.property=previoussetting
のLinuxはGNU sedを想定すると
example.java.property=desiredsetting
sed
の単純なライナーを使用して、Javaプロパティ値を更新したいとします。 Javaのプロパティの現在の設定が何であるかを知らなくても、それはsedを使用してJavaプロパティファイル内のプロパティを更新する
前
example.java.property=previoussetting
のLinuxはGNU sedを想定すると
example.java.property=desiredsetting
後、1溶液のようになります)空の可能性があり
編集がエスケープされました '。'文字あなたのsedは-i
を尊重しない場合は、あなたがtmpのファイルを管理する必要がケント
replaceString=desiredsetting
sed -i "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties
によって正しいコメントあたりすなわちs/example\.java.../
、すなわち
sed "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties > myTmp
/bin/mv -f myTmp java.properties
私はこのことができます願っています。これは、あなたがの
sed -i -e "/property.name.1=/ s/=.*/=newValue1/" -e "/property.name.2=/ s/=.*/=newValue2/" yourFile.properties
達人がをsedの複数のプロパティ
を更新する方法ですsed -i "/property.name=/ s/=.*/=newValue/" yourFile.properties
これは新しいファイル
sed "/property.name=/ s/=.*/=newValue/" yourFile.properties > newFile.properties
に印刷されます:
これはあなたのファイルを更新しますこれを行うための最も適切な方法ではないので、私を非難するかもしれません(例えば、私はドットをエスケープしませんでしたが)私は可読性を犠牲にしたくないときにこれを最善の選択肢と考えています。ここで
は議論を拡張しています: 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/) –