2012-05-02 13 views
1

セットアッププログラム中に、設定ファイル(log4j.properties)を変更する必要があります。Sed拡張に失敗する

log4j.propertiesの一行は、我々はそれが

log4j.appender.R.File=${catalina.base}/logs/OurProductWorker5.log 

(またはいくつかの類似した数)をchangedtoしたい

log4j.appender.R.File=${catalina.base}/logs/OurProductWorker.log 

が含まれてい

これは動作します:

sed -i 's/OurProductWorker.log/'"$1.log"'/g' "log4j.properties" 

(呼び出された関数では1 9から=数)

これは失敗します。

B_PRODUCT=OurProduct 
sed -i 's/"$B_PRODUCT"Worker.log/'"$1.log"'/g' "log4j.properties" 

私たちはOEMメーカーのためにこれをリブランドするにする必要があるため、変数を使用する必要があり、それは明らかにだけに簡単です個々の関数ではなく、スクリプトの始めに変数の束を変更します。

答えて

2

は、あなたはいつも(あなたは$ 1を行ったように)変数は拡大持つように単一引用符「をオフ」する必要があり、この

sed -i 's/'"$B_PRODUCT"'Worker.log/'"$1.log"'/g' "log4j.properties" 

を試してみてください。

こちらがお役に立てば幸いです。

関連する問題