相关疑难解决方法(0)

如何使用jq格式化JSON字符串作为表?

刚刚开始使用Bash脚本,并偶然发现jq与JSON一起工作.

我需要将如下所示的JSON字符串转换为终端输出的表.

[{
    "name": "George",
    "id": 12,
    "email": "george@domain.com"
}, {
    "name": "Jack",
    "id": 18,
    "email": "jack@domain.com"
}, {
    "name": "Joe",
    "id": 19,
    "email": "joe@domain.com"
}]
Run Code Online (Sandbox Code Playgroud)

我要在终端显示的内容:

ID        Name
=================
12        George
18        Jack
19        Joe
Run Code Online (Sandbox Code Playgroud)

请注意我不想显示每行的email属性,因此jq命令应该包含一些过滤.以下给出了一个名称和id的简单列表:

list=$(echo "$data" | jq -r '.[] | .name, .id')
printf "$list"
Run Code Online (Sandbox Code Playgroud)

问题是,我不能像桌子一样显示它.我知道jq有一些格式化选项,但不如我使用时的选项差不多printf.我想我想在一个数组中得到这些值,然后我可以循环自己进行格式化......?我尝试的东西给了我不同的结果,但从来没有我真正想要的.

有人能指出我正确的方向吗?

bash json jq

53
推荐指数
5
解决办法
3万
查看次数

标签 统计

bash ×1

jq ×1

json ×1