Sed扩展失败

时间:2012-05-02 20:22:14

标签: sed

在安装程序期间,需要修改配置文件(log4j.properties)。

一行log4j.properties包含

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

我们希望将其改为

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

(或类似的数字)

这有效:

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

$1 =被称为函数的1到9之间的数字

这失败了:

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

我需要使用变量,因为我们需要为OEM重新命名这个变量,而且在脚本开头更改一堆变量显然更容易,而不是单个函数。

1 个答案:

答案 0 :(得分:2)

试试这个

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

您必须“关闭”单引号才能进行变量展开(就像您使用$ 1一样)。

我希望这会有所帮助。