在分隔符后拆分文本并存储到数组中
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]}
我想在定界符 '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]}