yq 处理带引号的字符串
yq processing a string with quotation marks
目前我正在尝试使用 mikefarah/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: '"exchangedstring"'
但我想要的结果是这样的:
config:
app:
name: "exchangedstring"
我也尝试过使用不同变体的反斜杠(例如“\"exchangedstring\"”或“\"exchangedstring\"”)。可惜都是错误的结果。
我不排除后面解析yaml文件的应用程序不会把这个位置的字符串弄乱的可能性,所以我绝对有必要把这个位置的字符串放在引号里。
有没有人知道我如何仍然只能得到一个简单版本的引号?
非常感谢您。
引入了 mikefarah/yq has a --style
option 的最新版本(从 v3 开始),它允许您对值进行自定义格式设置。例如您可以使用 --style=double
双引号值
yq w -i appconfig.yml config.app.name --style=double exchangedstring
目前我正在尝试使用 mikefarah/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: '"exchangedstring"'
但我想要的结果是这样的:
config:
app:
name: "exchangedstring"
我也尝试过使用不同变体的反斜杠(例如“\"exchangedstring\"”或“\"exchangedstring\"”)。可惜都是错误的结果。 我不排除后面解析yaml文件的应用程序不会把这个位置的字符串弄乱的可能性,所以我绝对有必要把这个位置的字符串放在引号里。
有没有人知道我如何仍然只能得到一个简单版本的引号? 非常感谢您。
引入了 mikefarah/yq has a --style
option 的最新版本(从 v3 开始),它允许您对值进行自定义格式设置。例如您可以使用 --style=double
双引号值
yq w -i appconfig.yml config.app.name --style=double exchangedstring