sed schlägt mit dem Fehler “unbekannte Option zu” fehl

Ich versuche zu verwenden

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

aber ich bekomme diesen Fehler:

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

Ich verstehe nicht warum, weil das perfekt funktioniert:

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

Irgendwelche Ideen, was ich falsch mache?

Könnte das das Problem sein? ftp_login_template=\${user}:${password}:24:86::\/var\/lib\/clit.${user}\/downloads:\/bin\/false\"

   

Das Problem ist mit Schrägstrichen: Ihre Variable enthält sie und der letzte Befehl wird etwas wie sed "s/string/path/to/something/g" , das viel zu viele Schrägstriche enthält.

Da sed ein beliebiges Zeichen als Trennzeichen verwenden kann, können Sie versuchen, ein anderes Zeichen zu verwenden, das nicht in Ihrer Ersetzungszeichenfolge enthalten ist:

 replacement="/my/path" sed -e "s@pattern@$replacement@" 

Beachten Sie, dass dies nicht kugelsicher ist: Wenn die Ersetzungszeichenfolge später @ enthält, wird es aus dem gleichen Grund abgebrochen, und alle umgekehrten Schrägstriche wie \1 werden weiterhin gemäß den sed-Regeln interpretiert.