我有一个JSON数据如下所示
[
{
"id": 4449282,
"iid": 6316,
"project_id": 1234,
"sha": "abcdefg",
"ref": "test_branch",
"status": "running",
"source": "web",
"created_at": "2023-09-25T05:55:20.788Z",
"updated_at": "2023-09-25T05:55:23.481Z",
"web_url": "https://example.gitlab.com"
}
]
我希望输出仅用选择键和值进行过滤。我需要的过滤输出是
[
{
"iid": 6316,
"project_id": 1234,
"ref": "test_branch",
"status": "running",
"source": "web",
"created_at": "2023-09-25T05:55:20.788Z",
"updated_at": "2023-09-25T05:55:23.481Z",
"web_url": "https://example.gitlab.com"
}
]
我尝试了jq 'with_entries
和jq select
,但无法让它工作。
3条答案
按热度按时间rt4zxlrg1#
如果你想提供要保留的内容,你可以使用
pick
过滤器,如果你有jq 1.7:Demo
如果你没有jq 1.7,你可以从源代码中复制它来定义它:
Demo
如果你想提供要删除的内容,可以使用
del
:Demo
正如您尝试使用
with_entries
和select
一样,下面是如何使用这些过滤器实现所需结果的方法:选择要保留的内容:
Demo
选择不保留的内容:
Demo
以上所有输出:
rqenqsqc2#
您可以用途:
waxmsbnn3#
最简单的方法,适用于所有jq版本:
Demo