使用bash从json格式提取输出值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用bash从json格式提取输出值相关的知识,希望对你有一定的参考价值。
如何提取如下所示的值3be847cb-48d6-ea4d-05ab-ee8ea2bd7337?我试图使用awk和{'print $'}之类的东西,但这不起作用,因为整个输出是第一项。
命令:
$ curl -s --request GET http://x.y.z.10:8500/v1/kv/my-key-value
输出:
[{"LockIndex":0,"Key":"w-key-value","Flags":0,"Value":"Nw==","Session":"3be847cb-48d6-ea4d-05ab-ee8ea2bd7337","CreateIndex":16,"ModifyIndex":33212}]
答案
要从json中提取,你应该使用jq。根据作者“jq就像sed for JSON data”(source)。
在你的情况下,它应该是:
$ curl -s --request GET http://x.y.z.10:8500/v1/kv/my-key-value | jq -r '.Session'
输出将是:
3be847cb-48d6-ea4d-05ab-ee8ea2bd7337
在使用jq之前,你应该在Debian和Ubuntu上安装它,它将是:
$ sudo apt install jq
对于其他操作系统,你应该检查this site。
以上是关于使用bash从json格式提取输出值的主要内容,如果未能解决你的问题,请参考以下文章
Android:我想以 json 格式从 google map api 中提取地址
从 JSON 响应中提取浮点密钥对值时出现 TypeError