【问题标题】:sed: -e expression #1, char 40: unterminated `s' commandsed: -e 表达式 #1, char 40: 未终止的 `s' 命令
【发布时间】:2018-09-01 09:50:40
【问题描述】:

当我运行命令时

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

我得到了错误

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

知道怎么解决吗?

【问题讨论】:

    标签: unix centos command


    【解决方案1】:

    首先,让我们暂时不考虑-i 标志,稍微简化一下命令:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-25
      • 1970-01-01
      • 2017-07-10
      • 2021-06-26
      • 2019-03-17
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多