首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中解析JSON文件

在bash中解析JSON文件
EN

Stack Overflow用户
提问于 2015-02-11 22:01:52
回答 1查看 219关注 0票数 1

我有下面的JSON文件

代码语言:javascript
复制
[
    {
        "bw-parallel-streams": "1",
        "destination": "198.124",
        "event-types": [
            {
                "base-uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/throughput-subintervals/base",
                "event-type": "throughput-subintervals",
                "summaries": [],
                "time-updated": 1423675036
            },
            {
                "base-uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/failures/base",
                "event-type": "failures",
                "summaries": [],
                "time-updated": null
            },
            {
                "base-uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/packet-retransmits/base",
                "event-type": "packet-retransmits",
                "summaries": [],
                "time-updated": 1423675036
            },
            {
                "base-uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/throughput/base",
                "event-type": "throughput",
                "summaries": [
                    {
                        "summary-type": "average",
                        "summary-window": "86400",
                        "time-updated": 1423675036,
                        "uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/throughput/averages/86400"
                    }
                ],
                "time-updated": 1423675036
            },
            {
                "base-uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/packet-retransmits-subintervals/base",
                "event-type": "packet-retransmits-subintervals",
                "summaries": [],
                "time-updated": 1423675036
            }
        ],
        "input-destination": "wash-pt1.es.net",
        "input-source": "128.143",
        "ip-transport-protocol": "tcp",
        "measurement-agent": "128.143.231.161",
        "metadata-count-total": 1,
        "metadata-key": "dfbd05cef48c4111b9da3cc1238f74ad",
        "source": "128.143.",
        "subject-type": "point-to-point",
        "time-duration": "20",
        "time-interval": "21600",
        "tool-name": "bwctl/iperf3",
        "uri": "/esmond/perfsonar/archive/dfbd05cef48c4111b9da3cc1238f74ad/"
    }
]

我想根据事件类型检索基uri。

我正在写一个bash脚本来完成这个任务。我以前从未使用过JSON文件或编写过python代码,所以如果我的问题看起来如此天真,我很抱歉。我可以在Bash中这样做,否则如果我使用python,会更容易吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 22:13:40

我使用jshon,我认为它可以在ubuntu的存储库中使用:

代码语言:javascript
复制
apt-get install jshon

我还没有对此进行测试,但您可能需要这样做:

代码语言:javascript
复制
jshon -e 0 -e event-types -e 0 -e time-updated -u < data.json

它会打印1423675036

有关更多信息,请参见这里:http://kmkeen.com/jshon/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28465391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档