![](/img/trans.png)
[英]How to find a key-value pair in json text using shell scripting with in-built linux tools like sed?
[英]how to get a value from a json key value pair in linux shell scripting
嗨,我正在写一个小的shell脚本。 在那里我使用curl命令来调用api。 它返回的是扫描状态。
{"status":"14"}
我想获得此状态并检查它是否小于100; 这是我到目前为止所做的
a=0
while [ $a -lt 100 ]
do
curlout=$(curl "http://localhost:9090/JSON/spider/view/status/?zapapiformat=JSON&scanId=0");
echo "$curlout";
a=`expr $a + 1`
done
我要做的是将该状态分配给$ a; 如何获取此json以获取Shell脚本中的值
如果需要使用JSON,则应获取jq
:
$ echo '{"status": "14"}' | jq '.status|tonumber'
14
或者,不那么严格:
$ echo '{"status": "14"}' | jq -r '.status'
14
如果您确定curl输出的格式,则非常简单。
echo "$curlout" | tr -cd '[:digit:]'
从tr
联机帮助页中,
-c, -C, --complement
use the complement of SET1
-d, --delete
delete characters in SET1, do not translate
[:digit:]
all digits
因此,此命令将除去数字以外的所有字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.