2012-05-02 2 views
1

Во время программы установки необходимо изменить файл конфигурации (log4j.properties).Ошибка расширения Sed

Одна линия log4j.properties содержит

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

Мы хотим, чтобы быть changedto

log4j.appender.R.File=${catalina.base}/logs/OurProductWorker5.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

Попробуйте

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

Вы всегда должны «выключить» одинарные кавычки, чтобы иметь переменное расширение (как вы сделали с $ 1).

Надеюсь, это поможет.

Смежные вопросы