Comment puis-je sélectionner plusieurs champs dans jq
Mon fichier d'entrée ressemble à quelque chose comme ceci:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Je peux obtenir tous les noms de connexion avec ceci : cat members | jq '.[].login'
mais je n'ai pas pu percer la syntaxe de fois le nom d'utilisateur et id?
Pouvez-vous donner un exemple de ce que votre sortie doit ressembler? Il existe de nombreuses façons dans lequel la connexion/id les paires pourraient être représentés.
OriginalL'auteur J. Groesser | 2016-01-17
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
jq '.[] | .login, .id'
pour obtenir chaque connexion, suivie par son id.L'échantillon d'utilisateurs de l'entrée ressemble à un flux d'objets, mais à cause de l'exemple de script qu'ils fournissent, je suis en supposant qu'il est enveloppé dans un tableau qui ils omis.
Il n'y a pas besoin de cette hypothèse.
jq
fonctionne très bien avec une séquence d'objets, pas besoin de la matrice de wrapper. Le...
des chaînes et de la dernière virgule besoin de suppression, mais je considère que pour être implicite.jq '.[] | .login, .id'
- ce qui crée deux dossiers, un pour .login et un pour .id.Ou si vous voulez seulement ces deux champs à afficher.
jq '.[] | {login, id}'
OriginalL'auteur
Cela fonctionne pour moi:
OriginalL'auteur Peter V. Mørch