我sed
在脚本中执行命令:
sed -i "${1}s/${2}=.*/${2}=${REPLY}/" $3
这是回声:
sed -i 13s/log4j.appender.ROOT2.File=.*/log4j.appender.ROOT2.File=/app/TET/log.log/ /applis/DIAPASON/diapason1/conf/log4j.properties
我的错误:
sed: -e expression n°1, character 61: unknown option for
是的
答案1
变量中有多个/
字符$REPLY
,这很令人困惑sed
。
s///
您可以在大多数版本的 中为命令选择替代分隔符sed
,所以如果这是我,我会尝试如下操作:
sed -i "${1}s|${2}=.*|${2}=${REPLY}|" $3
这将/
for sed 替换为|
,以便/
in ${REPLY}
(希望)不被 解释sed
。
答案2
使用任何字符作为命令分隔符,请参阅以下示例
sed -Ei "s|$k|$j|g" filename.txt