Я сохранил вывод curl json в переменную. И я хочу получить только описание и сохранить его в другой переменной.
Я пробовал jq и grep, но не работает.
var=`curl -i -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "trigger.get",
"params": {
"filter": {"value": "1"},
"sortfield": "lastchange",
"limit": 20
},
"auth": "authstring",
"id": 1
}' http://127.0.0.1/zabbix/api_jsonrpc.php`
echo $var
{
"jsonrpc":"2.0",
"result":[
{
"triggerid":"17169",
"expression":"{19444}=1",
"description":"Zabbix agent on {HOST.NAME} is unreachable for 5 minutes",
"url":"",
"status":"0",
"value":"1",
"priority":"3",
"lastchange":"1569589239",
"comments":"",
"error":"",
"templateid":"13437",
"type":"0",
"state":"0",
"flags":"0",
"recovery_mode":"0",
"recovery_expression":"",
"correlation_mode":"0",
"correlation_tag":"",
"manual_close":"0",
"details":""
},
{
"triggerid":"18123",
"expression":"{20525}=1",
"description":"Zabbix agent on {HOST.NAME} is unreachable for 5 minutes",
"url":"",
"status":"0",
"value":"1",
"priority":"3",
"lastchange":"1569590703",
"comments":"",
"error":"",
"templateid":"13437",
"type":"0",
"state":"0",
"flags":"0",
"recovery_mode":"0",
"recovery_expression":"",
"correlation_mode":"0",
"correlation_tag":"",
"manual_close":"0",
"details":""
}
],
"id":1
}
echo $var | jq -r '.description'
Ошибка разбора: неверный числовой литерал в строке 1, столбец 9
Есть идеи, что означает эта ошибка? И как я могу добиться этого с помощью grep?
Разобрался, как это сделать с помощью grep. Так что теперь мне нужно только выяснить, что означает ошибка jq
и как ее исправить.
echo $var | grep -Po '"description":.*?[^\\]",'
"description":"Zabbix agent on {HOST.NAME} is unreachable for 5 minutes",
"description":"Zabbix agent on {HOST.NAME} is unreachable for 5 minutes",