sed – 未知选项到's'

我正在尝试使用

sed -i -e "s/.*seb.*/ \"$ftp_login_template\"/" $ftp_dir 

但是我得到这个错误:

 sed: -e expression #1, char 34: unknown option to `s' 

我不明白为什么,因为这完美的作品:

 sed -i -e "s/.*wbspassword.*/ \"wbspassword\": \"$password\",/" $user_conf 

任何想法,我做错了什么?

这可能是问题吗? ftp_login_template=\${user}:${password}:24:86::\/var\/lib\/clit.${user}\/downloads:\/bin\/false\"

问题是斜线:你的变量包含它们,最后的命令将是像sed 's/string/path/to/something/g' ,包含太多的斜线。

由于sed可以采取任何字符作为分隔符,您可以尝试使用另一个而不是/

 sed -e 's@expr1@expr2@'