json - 使用 jq 获取键子集并将输出包装到列表
问题描述
假设我们有以下记录:
[
{"k1": "v1", "k2": "v2"},
{"k1": "v1", "k2": "v2"},
{"k1": "v1", "k2": "v2"}
]
我们只想保留键的一个子集,例如k1
我们要做什么操作才能得到下面的输出?
[
{"k1": "v1"},
{"k1": "v1"},
{"k1": "v1"}
]
我试过做jq '.[] | { "k1": .k1 }'
,但它返回
{"k1": "v1"}
{"k1": "v1"}
{"k1": "v1"}
也尝试过,jq '.[] | { "k1": .k1 }' | jq '[inputs]'
但由于某种原因它删除了第一行
[
{"k1": "v1"},
{"k1": "v1"}
]
解决方案
使用map
,它将过滤器应用于数组的所有元素。
$ jq 'map({k1})' file
[
{
"k1": "v1"
},
{
"k1": "v1"
},
{
"k1": "v1"
}
]
推荐阅读
- android - 在 Service 、Alarm Manager 和 Job Scheduler 中哪个概念最好使用
- azure - 如何在 Azure 流分析中解压缩 Gzip 数据?
- redis - Redis 键在集群模式下被自动删除
- xml - xml 类型元素的术语是什么
- xamarin.forms - 如何在 xamarin StackLayout 中为 TextEdit 和 Button 提供 ID
- javascript - 如何修复 CSS 切换背景颜色?
- r - R中是否有任何方法可以将第一列作为标题
- python - 对任意长度的 List[str] 进行多次相等测试以解决 LongestCommonPrefix
- google-cloud-sql - 云作曲家中没有名为“gcp_sql_operator”的模块
- css - 将图标和两行文本与物化 css 对齐