История изменений
Исправление vodz, (текущая версия) :
Что-то лыжи не едут
Потому что символ / - не специальный и не экранируется. Вам надо выбрать символ для ограничения regex s/old/new/ вместо '/' -другой, который не генерирует tr -dc [:graph:]. Да и OLDPASS надо преобразовыванную.
$ OLDPASS='rsOG,9:b&M&j\K_'
$ NEWPASS='M!~6?1>%FU`\/NGT'
$ printf -v NEWPASS %q "$NEWPASS"
$ echo "$NEWPASS"
M\!~6\?1\>%FU\`\\/NGT
$ printf -v OLDPASS %q "$OLDPASS"
$ SP=$'\001'
$ sed -ie "s${SP}${OLDPASS}${SP}${NEWPASS}${SP}" "$passwdfile"
Исправление vodz, :
Что-то лыжи не едут
Потому что символ / - не специальный и не экранируется. Вам надо выбрать символ для ограничения regex s/old/new/ вместо '/' -другой, который не генерирует tr -dc [:graph:]. Да и OLDPASS надо преобразовыванную.
$ OLDPASS='rsOG,9:b&M&j\K_'
$ NEWPASS='M!~6?1>%FU`\/NGT'
$ printf -v NEWPASS %q "$NEWPASS"
$ echo "$NEWPASS"
M\!~6\?1\>%FU\`\\/NGT
$ printf -v OLDPASS %q "$OLDPASS"
$ SP=$'\001'
$ sed -ie "s$SP$OLDPASS$SP$NEWPASS$SP" "$passwdfile"
Исходная версия vodz, :
Что-то лыжи не едут
Потому что символ / - не специальный и не экранируется. Вам надо выбрать символ для ограничения regex s/old/new/ вместо '/' -другой, который не генерирует tr -dc [:graph:]. Да и OLDPASS надо преобразовыванную.
$ NEWPASS='M!~6?1>%FU`\/NGT'
$ printf -v NEWPASS %q 'M!~6?1>%FU`\/NGT'
$ echo "$NEWPASS"
M\!~6\?1\>%FU\`\\/NGT
$ OLDPASS='rsOG,9:b&M&j\K_'
$ printf -v OLDPASS %q 'M!~6?1>%FU`\/NGT'
$ SP=$'\001'
$ sed -ie "s$SP$OLDPASS$SP$NEWPASS$SP" "$passwdfile"