Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yaml yq处理带引号的字符串_Yaml_Yq - Fatal编程技术网

Yaml yq处理带引号的字符串

Yaml yq处理带引号的字符串,yaml,yq,Yaml,Yq,目前,我正在尝试与处理器(Ubuntu机器上的3.1.2版)交换一个字符串,但在YAML文件中使用双引号,如下所示: config: app: name: "string" 因此,我首先尝试以经典的方式解决这个问题: yq w -i appconfig.yml config.app.name "exchangedstring" 但是字符串中没有包含引号 config: app: name: exchangedstring 我曾多次尝试转义字符串以获得所需的结果,但不

目前,我正在尝试与处理器(Ubuntu机器上的3.1.2版)交换一个字符串,但在YAML文件中使用双引号,如下所示:

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"
但我期望的结果是:

config:
  app:
    name: '"exchangedstring"'
config:
  app:
    name: "exchangedstring"
我还尝试了不同变体中的反斜杠(例如“\”exchangedstring\”或“\”exchangedstring\”),不幸的是结果都是错误的。 我不能排除稍后解析yaml文件的应用程序不会弄乱该位置的字符串的可能性,因此我绝对有必要将该位置的字符串用引号括起来

有人知道我怎么能只得到一个简单的引号吗? 非常感谢。

的最新版本(v3及以后版本)引入了一个,允许您对值进行自定义格式设置。例如,您可以使用
--style=double
对值进行双引号

yq w -i appconfig.yml config.app.name --style=double exchangedstring

YAML字符串引用是可选的,仅当字符串包含空格等保留字符时才需要。在
yq
v4中,“style”是它自己的运算符:是的,在v3和v4之间,该工具的整个DSL都发生了变化,因此v3和更低版本中的所有答案现在都过时了