小编DrR*_*tro的帖子

yq 处理带引号的字符串

目前,我正在尝试使用mikefarah/yq处理器(Ubuntu 机器上的 3.1.2 版)在 YAML 文件中交换一个字符串,但带有双引号,类似于以下内容:

config:
  app:
    name: "string"
Run Code Online (Sandbox Code Playgroud)

所以我首先尝试为我经典地解决这个问题:

yq w -i appconfig.yml config.app.name "exchangedstring"
Run Code Online (Sandbox Code Playgroud)

但是引号中没有包含在字符串中。

config:
  app:
    name: exchangedstring
Run Code Online (Sandbox Code Playgroud)

我已经多次尝试对字符串进行转义以获得所需的结果,但不幸的是,一切都不是所需的结果。例如,如果我将字符串设置为三重(类似于“””),则设置了引号,但是它周围有一个单引号。它看起来像这样:

config:
  app:
    name: '"exchangedstring"'
Run Code Online (Sandbox Code Playgroud)

但我想要的结果是这样的:

config:
  app:
    name: "exchangedstring"
Run Code Online (Sandbox Code Playgroud)

我还尝试使用不同变体的反斜杠(例如“\”exchangedstring\"" 或 '\"exchangedstring\"')。不幸的是所有错误的结果。我不能排除稍后解析 yaml 文件的应用程序不会与该位置的字符串混淆的可能性,因此该字符串在该位置用引号引起来对我来说是绝对必要的。

有没有人知道我如何仍然只能得到一个简单版本的引号?非常感谢您提前。

yaml yq

4
推荐指数
1
解决办法
2015
查看次数

标签 统计

yaml ×1

yq ×1