我有下面的JSON文件
[
{
"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,会更容易吗?
谢谢
发布于 2015-02-11 22:13:40
我使用jshon,我认为它可以在ubuntu的存储库中使用:
apt-get install jshon我还没有对此进行测试,但您可能需要这样做:
jshon -e 0 -e event-types -e 0 -e time-updated -u < data.json它会打印1423675036
有关更多信息,请参见这里:http://kmkeen.com/jshon/
https://stackoverflow.com/questions/28465391
复制相似问题