使用bash将API数据放入bash数组中

时间:2015-03-24 21:45:53

标签: arrays linux bash

使用我们的新API我试图从API调用的结果中提取几行,并将这些结果放入bash数组中。任何人都可以帮我这个。这是API输出的示例:

{
    "id": "1l2k3j",
    "createDate": "2015-03-06T03:40:29.000Z",
    "accountId": "12345",
    "url": "www.google.com",
  },
  {
    "id": "z0x99c",
    "createDate": "2015-03-06T03:43:04.000Z",
    "accountId": "12345",
    "url": "www.yahoo.com",
  },

我需要将id(例如:z0x99c)放入bash数组中。

2 个答案:

答案 0 :(得分:2)

array=($(tr -d '",' < file | awk '/id:/ {print $2}'))

或使用GNU sed:

array=($(sed -n 's/.*"id": "\(.*\)".*/\1/p' file))

或使用GNU grep:

array=($(grep -oP 'id": "\K[^"]*' file))

echo ${array[@]}

输出:

1l2k3j z0x99c

答案 1 :(得分:0)

取决于您获得此输出的方式,

array=($(curl http://api.example.com/boink | jq -r '.id'))