yq обрабатывает строку с кавычками
В настоящее время я пытаюсь обменять строку, но с двойными кавычками в файле YAML с процессором mikefarah/yq (версия 3.1.2 на машине Ubuntu), как показано ниже:
config:
app:
name: "string"
Поэтому я сначала попытался решить эту проблему классическим способом:
yq w -i appconfig.yml config.app.name "exchangedstring"
Но кавычки в строку не входили.
config:
app:
name: exchangedstring
Я сделал несколько попыток избежать строки, чтобы получить желаемый результат, но, к сожалению, все не было желаемым результатом. Например, если я установил тройную строку (что-то вроде """), кавычки были установлены, но тогда вокруг них была одинарная кавычка. Тогда это выглядело так:
config:
app:
name: '"exchangedstring"'
Но желаемый результат был бы таким:
config:
app:
name: "exchangedstring"
Я также пробовал использовать обратную косую черту в разных вариантах (например, "\"exchangengedstring\"" или '\"exchangengedstring\"'). К сожалению все неверный результат. Я не могу исключить возможность того, что приложение, которое позже проанализирует файл yaml, не будет связываться со строкой в этой позиции, поэтому мне абсолютно необходимо, чтобы строка была заключена в кавычки в этой позиции.
Кто-нибудь знает, как я могу использовать только простую версию кавычек? Заранее большое спасибо.
1 ответ
В последней версии (начиная с v3) mikefarah/yq есть --style
введена опция, которая позволяет настраивать форматирование значений. Например, вы можете использовать--style=double
двойные кавычки значения
yq w -i appconfig.yml config.app.name --style=double exchangedstring