【发布时间】:2021-02-04 10:58:40
【问题描述】:
我有以下 json 文件为例:
{
"FOO": {
"name": "Donald",
"location": "Stockholm"
},
"BAR": {
"name": "Walt",
"location": "Stockholm"
},
"BAZ": {
"name": "Jack",
"location": "Whereever"
}
}
我有这个 jq 命令:
cat json | jq .[] | {newname : select(.location=="Stockholm") | .name , contains_w : select(.location=="Stockholm") | .name | startswith("W")}
所以我得到了结果:
{
"newname": "Donald",
"contains_w": false
}
{
"newname": "Walt",
"contains_w": true
}
我的问题是:有没有办法DRY我的命令?
我的意思是如果没有 duplicate 部分,我怎样才能得到相同的结果:
select(.location=="Stockholm") | .name
如何重用 newname feild 的结果?
我有一个非常大的文件要处理,所以我不想浪费时间和资源。
【问题讨论】:
-
@Oguz_Ismail - 请取消删除您的答案!!!
-
@Ismail 你为什么要删除你的答案?真的很有帮助
-
@SoufianeELH - 他可能删除了它,因为你似乎改变了问题。请根据需要修改您的问题,以便如果有正确且有价值的答案,您准备“接受”它。