在分隔符后拆分文本并存储到数组中

Split text after a delimiter and store into array

我想在定界符 'name":"' 之后获取文本中的 DNS 区域,然后存储到数组中:

[{"id":12,"**name":"43.11.in-addr.arpa**","ttl":1000,"nameserver":"mo.t1.ree.kalou.com.","email":"dns.kalou.com","serial":348,"refresh_time":1000,"negative_ttl":10800},{"id":13,"name":"**58.78.in-addr.arpa**","ttl":100 etc etc

数组的输出:

43.11.in-addr.arpa
58.78.in-addr.arpa

我只是发现在一个定界符之后拆分,而不是一个单词。

谢谢

如果您的输入看起来像

your_json_string='[
  {
    "id": 12,
    "name": "43.11.in-addr.arpa",
    "ttl": 1000,
    "nameserver": "mo.t1.ree.kalou.com.",
    "email": "dns.kalou.com",
    "serial": 348,
    "refresh_time": 1000,
    "negative_ttl": 10800
  },
  {
    "id": 13,
    "name": "58.78.in-addr.arpa",
    "ttl": 100
  }
]'

要提取 name 字段,您可以使用 jq:

jq -r '.[].name' <<< "$your_json_string"

要将值分配给数组,请使用:

my_array=($(jq -r '.[].name' <<< "$your_json_string"))

并可能将它与

之类的东西一起使用
echo ${my_array[0]}