如何使用jq筛选file2中ID存在于file1的JSON条目?
使用jq筛选匹配ID的JSON条目
现有文件内容
file1(ID列表)
[ "id1", "id2" ]
file2(数据条目)
[ { "id": "id1", "name": "name1" }, { "id": "id1", "name": "name2" }, { "id": "id3", "name": "name3" }, { "id": "id5", "name": "name5" }, { "id": "id2", "name": "name6" } ]
需求
找出file2中id字段值存在于file1列表中的所有条目。
jq实现命令
执行以下命令即可完成筛选:
jq --slurpfile ids file1 'map(select(.id | IN($ids[])))' file2
命令说明
--slurpfile ids file1:将file1的JSON内容读取为名为$ids的数组变量map(...):遍历file2中的每一个条目select(.id | IN($ids[])):筛选出id字段值匹配$ids数组中任意元素的条目
预期输出
[ { "id": "id1", "name": "name1" }, { "id": "id1", "name": "name2" }, { "id": "id2", "name": "name6" } ]
内容的提问来源于stack exchange,提问作者Tashkhisi
相关产品推荐
相关产品推荐

