使用sed或awk读取json值.我不被允许使用jq



对于以下json数据,我需要检索状态的值。我试着在网上寻找例子并采用同样的方法,但由于这个json有数组,所以无法成功。你能帮我取回";"状态";在下面的json中?

这就是jq版本的样子echo $JSON | jq -r .data.affected_items[].status我需要使用

{
"data": {
"affected_items": [
{
"os": {
"arch": "x86_64",
"major": "2",
"name": "Amazon Linux",
"platform": "amzn",
"uname": "Linux |ip-10-179-120-6.vpc.internal |4.14.256-197.484.amzn2.x86_64 |#1 SMP Tue Nov 30 00:17:50 UTC 2021 |x86_64",
"version": "2"
},
"manager": "wazuh-manager-worker-0",
"dateAdd": "2022-02-24T08:42:52Z",
"lastKeepAlive": "2022-03-08T04:33:44Z",
"group": [
"default"
],
"name": "ec2_us-west-2_279976188247_i-030ccd7d70b84f0ee",
"ip": "10.179.120.6",
"configSum": "ab73af41699f13fdd81903b5f23d8d00",
"node_name": "wazuh-manager-worker-0",
"status": "active",
"version": "Wazuh v4.1.5",
"mergedSum": "56dfa0edef630b932284df2f81bf4a1c",
"id": "006",
"registerIP": "any"
}
],
"total_affected_items": 1,
"total_failed_items": 0,
"failed_items": []
},
"message": "All selected agents information was returned",
"error": 0
}

如果这不是您所需要的全部:

$ sed -n 's/.*"status": ("[^"]*").*/1/p' file
"active"

然后编辑您的问题,以包含对您的需求的更好解释和更具代表性的示例输入/输出,而以上内容不适用。

最新更新