Попытка поиска и замены переменных пароля специальными символами в нескольких файлах с помощью команды perl
в скрипте bash. Пока у меня есть:
grep -rlF "${old_pass}" | xargs perl -p -e "s~\Q$old_pass~\E$new_pass~g"
и это работает в большинстве случаев, однако иногда это не удается. Например, с учетом old_pass=*DGB9Twq7WTwz@wR
и new_pass=tDx6U&ShRv}E3Mdb
приведенная выше команда приводит к tDx6U&ShRv}E3Mdb@wR
вместо tDx6U&ShRv}E3Mdb
.
Обратите внимание, что пароли создаются автоматически и могут состоять из прописных и строчных букв, цифр и всех специальных символов. Таким образом, рабочая версия должна быть в состоянии учитывать (избегать) все возможные версии паролей.