0

如果我让输出发送到标准输出,我有一个 sed 命令可以正常工作

sed  s/defaultFedoraColor/grey/ stuff.js 

但是,如果我尝试通过添加 -i 标志来更改文件

sed  -i s/defaultFedoraColor/grey/ stuff.js 

我收到错误消息

sed: 1: "stuff.js": unterminated substitute pattern

为什么旗帜会改变我的替换模式的合法性?

4

1 回答 1

2

-i标志带一个参数!此参数是用于被操作文件的备份后缀。(大概是使用给定的后缀对原始文件进行备份。)因此,您的模式已成为 -​​i 的参数,并且 sed 尝试将“stuff.js”解释为模式。

编辑:不过,我根本没有遇到这种错误行为,但这就是阅读手册页所暗示的问题。

另一个编辑:也许您只想按照建议在模式周围添加引号

于 2013-03-22T17:15:09.797 回答