2012-02-20 20 views

答えて

7

後、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 

に印刷されます:

+0

-1 OPを有しているが[あなたが試してみましたか?]この答えを受け入れました。 'ドット'はエスケープされないので、ファイル内の間違ったプロパティを変更する可能性のある「任意の文字」を意味します。それは危険だ! – Kent

+0

@Kent:危険なものは強い言葉のようです。しかし、私のポストを良くするのを助けてくれてありがとうHoofamon:あなたのJavaのプロパティの改善のための改訂されたポストを見てください。皆さんお元気で。 – shellter

9

これはあなたのファイルを更新しますこれを行うための最も適切な方法ではないので、私を非難するかもしれません(例えば、私はドットをエスケープしませんでしたが)私は可読性を犠牲にしたくないときにこれを最善の選択肢と考えています。ここで

は議論を拡張しています: How do I use sed to change my configuration files, with flexible keys and values?

関連する問題