【发布时间】:2019-05-09 18:49:29
【问题描述】:
我正在尝试使用 jq 将 bash 中的表格从 json 打印到标准输出:
[
{
"key": "name",
"doc_count": 1000,
"values_over_time": {
"buckets": [
{
"key_as_string": "2019-05-01 11:00:00.000",
"key": 1556708400000,
"doc_count": 50
},
{
"key_as_string": "2019-05-02 12:00:00.000",
"key": 1556798400000,
"doc_count": 40
},
{
"key_as_string": "2019-05-02 13:00:00.000",
"key": 1556802000000,
"doc_count": 30
}
]
}
}
]
使用jq -r '(.[].key + " " + .[].values_over_time[][].key_as_string) + " " + (.[].values_over_time[][].doc_count|tostring)' 我得到以下结果:
"name 2019-05-01 11:00:00.000 50"
"name 2019-05-02 12:00:00.000 50"
"name 2019-05-02 13:00:00.000 50"
"name 2019-05-01 11:00:00.000 40"
"name 2019-05-02 12:00:00.000 40"
"name 2019-05-02 13:00:00.000 40"
"name 2019-05-01 11:00:00.000 30"
"name 2019-05-02 12:00:00.000 30"
"name 2019-05-02 13:00:00.000 30"
额外的循环级别有些奇怪,因为我希望只看到 3 行:
"name 2019-05-01 11:00:00.000 50"
"name 2019-05-02 12:00:00.000 40"
"name 2019-05-02 13:00:00.000 30"
阅读jq 文档,但无法理解以一种简洁的方式正确迭代的正确方法。你有什么线索吗?
【问题讨论】: