bash 中 sed 未终止的 s 命令出错
Posted
技术标签:
【中文标题】bash 中 sed 未终止的 s 命令出错【英文标题】:Error with sed unterminated s command in bash 【发布时间】:2015-09-25 10:33:20 【问题描述】:我在 bash 脚本中使用 sed 时遇到问题。 这是一行:
sed -i "s/"$name"/"$input"/g" ~/input.script
我收到此错误: sed: -e 表达式 #1, char 24: 未终止的 `s' 命令
奇怪的是,它在我的代码的早期版本中工作。我一直在解决问题,但找不到解决方案。
【问题讨论】:
您的变量中可能有一个换行符或斜杠,这让 sed 感到困惑。 @EtanReisner 我是个白痴。这最终成为错误。变量中有一个空格。 空格只会导致不带引号的变量出现问题。因此,如果您像 Eugeniu Rosca 所说的那样删除它们,那么问题应该已经消失了。换行符和斜杠一样仍然是个问题。 见***.com/questions/29613304/… 【参考方案1】:您不需要嵌套引号。另外,尝试更改分隔符:
sed -i "s@$name@$input@g" ~/input.script
【讨论】:
这里使用@
是为了让/
在变量值中没有问题。它将问题换成变量值中的@
。因此,您需要选择输入中不能正确执行此操作的内容。
@Etan Reisner:是的,我知道 :) 仍然感谢您的提及。无论如何,似乎 OP 解决了他的问题(等待解释......)。
是的,那不是给你的,而是给 OP/etc 的。以上是关于bash 中 sed 未终止的 s 命令出错的主要内容,如果未能解决你的问题,请参考以下文章
sed 错误:sed:-e 表达式 #1,字符 22:未终止的 `s' 命令
在Linux中执行sed命令报错“-bash: s/test/big: No such file or directory“
在Linux中执行sed命令报错“-bash: s/test/big: No such file or directory“