Yaml yq处理带引号的字符串
目前,我正在尝试与处理器(Ubuntu机器上的3.1.2版)交换一个字符串,但在YAML文件中使用双引号,如下所示: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 我曾多次尝试转义字符串以获得所需的结果,但不
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和更低版本中的所有答案现在都过时了