假设我有两个文件如下:
文件1:
[
"id1",
"id2"
]
文件2:
[
{
"id": "id1",
"name": "name1"
},
{
"id": "id1",
"name": "name2"
},
{
"id": "id3",
"name": "name3"
},
{
"id": "id5",
"name": "name5"
},
{
"id": "id2",
"name": "name6"
}
]
我想在file2中找到那些id存在于file1中的条目,在上面的例子中,预期的输出应该是这样的:
[
{
"id": "id1",
"name": "name1"
},
{
"id": "id1",
"name": "name2"
},
{
"id": "id2",
"name": "name6"
}
]
我如何才能做到这一点与jq。
2条答案
按热度按时间xytpbqjk1#
你会得到更好/更简洁的答案,但这似乎是工作。Slurp 两个文件到一个数组中,使用
file1.json
内容作为reduce
file2.json
的过滤器。在jqplay.org上试试。
如果文件大小很大,这可能会更好,因为它不会发出“slurp”的声音。
在jqplay.org上试试这个。
两个输出:
juud5qan2#
由于两个输入都已经是数组,因此不需要
--slurp
。此外,由于只有两个输入,因此也不需要调用--null-input
,只需使用input
作为第二个输入。例如,以相反的顺序使用输入:Demo