You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行sed替换命令时触发‘unknown option to `s'’错误的原因咨询

问题解答

这个错误很好解决,问题出在你写的sed命令末尾多了一个多余的右括号)

咱们来拆解一下sed的s替换命令的标准格式:s/查找串/替换串/选项,其中最后面的选项(比如你用的g表示全局替换)后面不需要额外的符号。你写的命令里,在g后面多加了一个),sed会把这个)当成s命令的可选参数,但它根本不认识这个选项,所以就抛出了sed: -e expression #1, char 91: unknown option to 's'的错误。

修正后的命令只要删掉那个多余的)就可以了:

sed -i "s/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting zsh-completions)/g" zshrc

另外给你一个小建议:如果你的查找或替换内容里包含分隔符(比如/),可以换用其他符号作为分隔符(比如#@),这样就不用转义特殊字符,可读性也更好,比如:

sed -i "s#plugins=(git)#plugins=(git zsh-autosuggestions zsh-syntax-highlighting zsh-completions)#g" zshrc

内容的提问来源于stack exchange,提问作者Ninja-Flex6969

火山引擎 最新活动