【发布时间】:2017-10-09 11:33:36
【问题描述】:
我有一个 Yaml 格式的文件(如下所述)。
values.yml
replicaCount: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
nodeSelector:
role: nginxplus
image:
repository: 2xxxxxxxxxxx6.dkr.ecr.us-east-1.amazonaws.com/miqp-devops
tag: foo
pullPolicy: IfNotPresent
现在我想用另一个值替换键标记。该值来自一个变量。
例如,
VAR=bar
echo $VAR
bar
我想要一些可以编辑我的 values.yml 文件并替换的东西
标签:foo 到标签:bar
谢谢
【问题讨论】:
-
到目前为止你有什么尝试?一个简单的
sed应该很容易在你的情况下工作 -
适合这项工作的工具确实类似于
jq。 (是的,它生成有效的 YAML——所有 JSON 都是有效的 YAML)。否则,您将受到所有关于使用结构未知工具编辑结构化数据的常见警告。 -
(也就是说,如果您的输入格式不正确或数据的表示形式发生了一点变化,那些不知道结构的工具将不知道如何处理它;您的
sed仅当输入精确地保持其当前格式时,基于 -based 的答案才适用于输入,但相同数据的其他文本版本是同样有效的数据,它们无法正确识别)。跨度> -
处理 HTML/XML/JSON/YAML/... 数据的经验法则——使用正确的解析器。