Just started out with Bash scripting and stumbled upon jq to work with JSON.
I need to transform a JSON string like below to a table for output in the terminal.
[{"name": "George","id": 12,"email": "george@domain.example"}, {"name": "Jack","id": 18,"email": "jack@domain.example"}, {"name": "Joe","id": 19,"email": "joe@domain.example"}]
What I want to display in the terminal:
ID Name=================12 George18 Jack19 Joe
Notice how I don't want to display the email property for each row, so the jq command should involve some filtering. The following gives me a plain list of names and id's:
list=$(echo "$data" | jq -r '.[] | .name, .id')printf "$list"
The problem with that is, I cannot display it like a table. I know jq has some formatting options, but not nearly as good as the options I have when using printf
. I think I want to get these values in an array which I can then loop through myself to do the formatting...? The things I tried give me varying results, but never what I really want.
Can someone point me in the right direction?