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
Другие вопросы по тегам