Juste commencé avec l'écriture de scripts Bash et je suis tombé sur jq à travailler avec JSON.
J'ai besoin de transformer une chaîne JSON comme ci-dessous un tableau pour la sortie dans le terminal.
[{
"name": "George",
"id": 12,
"email": "george@domain.com"
}, {
"name": "Jack",
"id": 18,
"email": "jack@domain.com"
}, {
"name": "Joe",
"id": 19,
"email": "joe@domain.com"
}]
Ce que je veux afficher dans le terminal:
ID Name
=================
12 George
18 Jack
19 Joe
Remarquez comment je ne veux pas afficher l'e-mail de propriété pour chaque ligne, de sorte que le jq commande doit impliquer un filtrage. La suite donne-moi une simple liste de noms et id:
list=$(echo "$data" | jq -r '.[] | .name, .id')
printf "$list"
Le problème c'est que je ne peut pas l'afficher comme une table. Je sais jq a certaines options de mise en forme, mais pas aussi bon que les options que j'ai lors de l'utilisation d' printf
. Je pense que je veux obtenir ces valeurs dans un tableau à laquelle je peux ensuite faire une boucle par moi-même à faire la mise en forme...? Les choses que j'ai essayé de me donner des résultats différents, mais jamais ce que je veux vraiment.
Quelqu'un peut me pointer dans la bonne direction?