Mi archivo de entrada se parece a esto:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Puedo obtener todos los nombres de inicio de sesión con esto: cat members | jq '.[].login'
pero no he podido descifrar la sintaxis para obtener tanto el inicio de sesión como la identificación.

Respuestas:
Puede utilizar
jq '.[] | .login, .id'para obtener cada inicio de sesión seguido de su identificación.fuente
jqfunciona muy bien con una secuencia de objetos, sin necesidad del contenedor de matriz. Las...cadenas y la última coma final deben eliminarse, pero considero que eso está implícito.jq '.[] | {login, id}'login.name?jq '.[] | {login.name, id}'parece funcionar, ¿cuál es la forma correcta, por favor?jq '.[] | {name: .login.name, id}'Esto funciona para mi:
fuente
Para seleccionar valores que están sangrados en diferentes niveles (es decir, tanto el primer como el segundo nivel), puede usar lo siguiente:
fuente
Solo proporcione un ejemplo más aquí (jq-1.6):
Recorra una matriz y seleccione un campo de un elemento de objeto y un campo de objeto en ese objeto
Sin los datos de ejemplo:
.[]: caminar a través de una matriz{id, name: .private_info.name}: tome .id y .private_info.name y envuélvalo en un objeto con el nombre de campo "id" y "nombre" respectivamentefuente