【发布时间】:2019-06-26 09:03:06
【问题描述】:
我正在尝试向标志批处理开始添加一个参数。这是它给我的错误。关于如何解决这个问题的任何想法?
$ sed -i "s/batch_start.*/batch_start\ 1111/" /tmp/runfile
sed: -e expression #1, char 27: unterminated `s' command
【问题讨论】:
-
我无法重现该错误。这真的是您正在运行的命令,还是您将变量替换为
s///命令? -
一些想法:尝试
''而不是"",或尝试\\ 1111(双反斜杠)。我不在终端,但这对我来说似乎是一个可能的报价问题。祝你好运! -
您是直接执行命令,还是先尝试将其存储在变量中?见BashFAQ #50: I'm trying to put a command in a variable, but the complex cases always fail!
-
-i选项的处理方式取决于 sed 的版本 (sed --version)。有些版本需要-i有一个参数,所以请尝试使用-i ''。 -
而不是
-i选项,总是有老式的方式:sed "s/batch_start.*/batch_start\ 1111/" /tmp/runfile > tmpfile && mv tmpfile /tmp/runfile