0

我执行这个命令:

sed -i 13s/log4j.appender.ROOT2.File=.*/log4j.appender.ROOT2.File='/appli/diap/log.log/' /applis/DIAPASON/diapason1/conf/log4j.properties

我有这个错误:

sed: -e expression n°1, caractère 61: option inconnue pour `s'

谢谢。

4

2 回答 2

1

您必须为s表达式使用不同的分隔符,或者/在替换中使用的路径中反引号。

例如

sed -i '13s@\(log4j.appender.ROOT2.File=\).*@\1/appli/diap/log.log@' /applis/DIAPASON/diapason1/conf/log4j.properties
于 2013-09-17T09:00:02.187 回答
1

您必须反斜杠,或使用不同的分隔符。否则,s///表达式在 之前结束appli,这是“s 的未知选项”。

sed -i 13s/log4j.appender.ROOT2.File=.*/log4j.appender.ROOT2.File='\/appli\/diap\/log.log/' /applis/DIAPASON/diapason1/conf/log4j.properties
sed -i 13s%log4j.appender.ROOT2.File=.*%log4j.appender.ROOT2.File='/appli/diap/log.log%'    /applis/DIAPASON/diapason1/conf/log4j.properties
于 2013-09-17T09:02:18.327 回答