我有这样的结构:
[
{ "name":"Genus", "value": "canis" }
{ "name":"env.VAR1", "value": "dogsdrool"
{ "name":"env.VAR2", "value": "catsrule" }
]
我想选择 name 属性值以“env”开头的对象。 (等效地,它与正则表达式
"^env\."
匹配)
然后将 name 属性值与 value 属性值连接起来,如下所示:
env.VAR1="dogsdrool"
env.VAR2="catsrule"
对于第一部分,我用 select 搞砸了,但基本上一无所获。看起来这应该不难,但它让我困惑。这不是基于键而是基于属性值的过滤。
对于第二部分,我已经有了这个,效果很好。我只是不知道如何仅过滤名称属性以
env.
开头的对象
|"\(.name) = \(.value)"
这有效:
.[] |select(.name|test("^env"))|"\(.name) = \(.value)"