Просто начал с Bash скриптинга и наткнулся на jq, чтобы работать с JSON.
Мне нужно преобразовать строку JSON, как показано ниже, в таблицу для вывода в терминале.
[{
"name": "George",
"id": 12,
"email": "[email protected]"
}, {
"name": "Jack",
"id": 18,
"email": "[email protected]"
}, {
"name": "Joe",
"id": 19,
"email": "[email protected]"
}]
Что я хочу отображать в терминале:
ID Name
=================
12 George
18 Jack
19 Joe
Обратите внимание, что я не хочу отображать свойство электронной почты для каждой строки, поэтому команда jq должна включать некоторую фильтрацию. Следующее дает мне простой список имен и идентификаторов:
list=$(echo "$data" | jq -r '.[] | .name, .id')
printf "$list"
Проблема в том, что я не могу отображать его как таблицу. Я знаю, что jq имеет некоторые параметры форматирования, но не так хорош, как параметры, которые у меня есть при использовании printf
. Я думаю, что хочу получить эти значения в массиве, который затем я смогу прокрутить сам, чтобы сделать форматирование...? То, что я пробовал, дало мне разные результаты, но я никогда этого не делал.
Может ли кто-нибудь указать мне в правильном направлении?