Чтобы заменить XML, я бы рекомендовал использовать синтаксический анализатор XML (например, xmllint
) вместо sed
.
Тем не менее, ваше sed
выражение неверно.
sed
s
команда использует 3 разделителя (любой печатный символ, который вы хотите), но эти 3 должны быть одинаковыми и определяются одним сразу после команды s
.
s/foo/bar/g # right
s|foo|bar|g # right
s|foo/bar|g # wrong
Поскольку вы заменяете строку строкой base64, вам не следует использовать какой-либо из символов base64, поэтому в этом случае не используйте /
в качестве разделителя sed
.
Ваше выражение должно быть таким:
sed -i "s|STORAGE_ACCOUNT_KEY|EoKpaH0W/kqTv9awgIpQX5s+qQwGzXUSxMxhRjfSWG7SIUTWhut1OYQkNxhb3/9UKGf+g4tc3UaC0zKMTSrTNg==|g" test.xml
Обратите внимание, что модификатор g
в конце команды может не понадобиться, если у вас есть только 1 строка для замены в строке.