sed:-e expression#1,char 40:unterminated`s'命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed:-e expression#1,char 40:unterminated`s'命令相关的知识,希望对你有一定的参考价值。

当我运行命令

sed -i.backup "/proxySettings['nginxCacheSize']/s/$/ . " inactive=5h"/"

我收到了错误

sed:-e expression#1,char 40:unterminated`s'命令

知道怎么解决吗?

答案

首先,让我们暂时离开-i标志,并简化命令:

sed "/'foo']/s/$/ "bar"/"

你的表达式中有单引号和双引号,而sed对命令的开始和结束位置感到困惑。如上所述,它似乎是这样的:

sed "/'foo']/s/$/ "

(之后有一些乱码),显然有一个未终止的s命令。我们可以使用单引号而不是双引号来标记命令,但是然后我们在foof周围的单引号上遇到了同样的问题。所以我们用反斜杠来逃避那些内部双引号:

sed "/'foo']/s/$/ "bar"/"

以上是关于sed:-e expression#1,char 40:unterminated`s'命令的主要内容,如果未能解决你的问题,请参考以下文章

在Linux中执行sed命令报错“-e expression #1, char 15: unterminated `s‘ command“

Linux sed指令报错:sed: -e expression #1, char 4: extra characters after command

Linux sed指令报错:sed: -e expression #1, char 4: extra characters after command

sed 错误:sed:-e 表达式 #1,字符 22:未终止的 `s' 命令

sed详解

sed