这里是我的json输入
{
"apiVersion": "v1",
"data": {
"POSTGRES_PASSWORD": "cXVhbGltYXJiJi0xZDYK"
},
"kind": "Secret",
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "POSTGRES_PASSWORD"
},
"name": "postgres-password"
},
"type": "Opaque"
}
字符串
我希望输出相同的json文件,但在将POSTGRES_PASSWORD
更改为cXVhbGltYXJiJi0xZDY=
之后(仅将最后一个字符“K”更改为=
)。
jq -r '.data|with_entries(.value == "cXVhbGltYXJiJi0xZDY=")
型
这是一个k8s secret,secret可以是POSTGRES_PASSWORD
以外的任何值,所以我想创建一个全局jq规则,可以将base64密码的最后一个字符替换为=
。输出应该是
{
"apiVersion": "v1",
"data": {
"ANY_PASSWORD": "any_password_base64="
},
"kind": "Secret",
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "ANY_PASSWORD"
},
"name": "any-password"
},
"type": "Opaque"
}
型
1条答案
按热度按时间vdzxcuhz1#
您可以使用以下
jq
命令来实现这一点:字符串
此命令执行以下操作:
1.使用
with_entries
覆盖.data
对象中的每个键值对。1.执行
sub
函数,将值末尾的“K”替换为“=”。1.使用
sub
将.metadata.labels."io.kompose.service"
中的“POSTGRES_PASSWORD”标签替换为“ANY_PASSWORD”。1.使用
sub
将.metadata.name
中的“postgres-password”名称替换为“any-password”。这将为您提供所需的输出给予。