最佳答案
刚刚开始使用 Bash 脚本,偶然发现 jq 可以使用 JSON。
我需要将下面这样的 JSON 字符串转换为用于在终端中输出的表。
[{
"name": "George",
"id": 12,
"email": "george@domain.example"
}, {
"name": "Jack",
"id": 18,
"email": "jack@domain.example"
}, {
"name": "Joe",
"id": 19,
"email": "joe@domain.example"
}]
我想在终端机上显示的内容:
ID Name
=================
12 George
18 Jack
19 Joe
注意,我不想显示每一行的 email 属性,所以 jq 命令应该包含一些过滤。下面给出了一个简单的姓名和 ID 列表:
list=$(echo "$data" | jq -r '.[] | .name, .id')
printf "$list"
问题是,我不能像显示表一样显示它。我知道 jq 有一些格式化选项,但是没有我使用 printf
时的选项好。我想把这些值放在一个数组里,然后我可以自己循环进行格式化... ?我尝试的事情给了我不同的结果,但从来没有什么我真正想要的。
有人能告诉我正确的方向吗?