gpt4 book ai didi

bash - jq - 使用参数构造选择器

转载 作者:行者123 更新时间:2023-11-29 09:21:11 24 4
gpt4 key购买 nike

我想知道是否可以使用参数在 jq 中构造字段名称。

示例:

jq -rc \
--arg secret_name ${secret_name} \
--arg secret_value ${secret_value} \
'.data.$secret_name = "$secret_value"'

在上面的示例中,我想使用参数 secret_name 的值在 .data 下创建一个 key 。这可能使用 jq 吗?

示例数据:

secret_name=abc  
secret_value=xyz

运行 jq 的 JSON:

{
"apiVersion": "v1",
"data": {},
"kind": "Secret",
"metadata": {
"name": "kv-secrets",
"namespace": "default"
},
"type": "Opaque"
}

预期输出:

{
"apiVersion": "v1",
"data": {
"abc": "xyz"
},
"kind": "Secret",
"metadata": {
"name": "secrets"
},
"type": "Opaque"
}

请注意,我打算运行原始命令来填充 .data 将更多的键值对。

最佳答案

对于变量,您需要使用长 [...] 形式作为键。您不需要在 JSON 过滤器中引用变量;变量字符串值。

jq -rc \
--arg secret_name "${secret_name}" \
--arg secret_value "${secret_value}" \
'.data[$secret_name] = $secret_value'

关于bash - jq - 使用参数构造选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com