我想在分隔符'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
我只是发现在单个分隔符之后拆分而不是单词。
由于
答案 0 :(得分:2)
如果您的输入看起来像
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]}