我的输入文件看起来像这样:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
我可以得到所有的登录名:cat成员| jq '.[].login'
但我还没有能够破解语法,以获得登录名和id?
我的输入文件看起来像这样:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
我可以得到所有的登录名:cat成员| jq '.[].login'
但我还没有能够破解语法,以获得登录名和id?
这对我来说很管用:
> echo '{"a":1,"b":2,"c":3}{"a":1,"b":2,"c":3}' | jq '{a,b}'
{
"a": 1,
"b": 2
}
{
"a": 1,
"b": 2
}
为了选择缩进到不同级别的值(即第一级和第二级),您可以使用以下命令:
echo '[{"a":{"aa":1,"ab":2},"b":3,"c":4},{"a":{"aa":5,"ab":6},"b":7,"c":8}]' \
| jq '.[]|[.a.aa,.a.ab,.b]'
[
1,
2,
3
]
[
5,
6,
7
]
在这里再提供一个例子(jq-1.6):
遍历一个数组,选择一个对象元素的字段和该对象中的一个对象字段
echo '[{"id":1, "private_info": {"name": "Ivy", "age": 18}}, {"id":2, "private_info": {"name": "Tommy", "aga": 18}}]' | jq ".[] | {id: .id, name: .private_info.name}" -
{
"id": 1,
"name": "Ivy"
}
{
"id": 2,
"name": "Tommy"
}
没有示例数据:
jq ".[] | {id, name: .private_info.name}" -
.[]:遍历数组
{id, name: .private_info.name}:将.id和.private_info.name分别包装成字段名为"id"和"name"的对象