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\"

Ответы

Ответ 1

Проблема со слэшами: ваша переменная содержит их, а заключительная команда будет похожа на sed 's/string/path/to/something/g', содержащую слишком много слэшей.

Так как sed может принимать любой char как разделитель, вы можете попробовать использовать другой вместо /:

sed -e '[email protected]@[email protected]'