我想创建一个json对象,以json格式的字符串列表开始,如下所示
[
"nonprod/global/app/sit01",
"nonprod/global/app/dev02",
"prod/na/app/prod01",
"test/eu/app/cust01",
"nonprod/global/app/dev03"
]
我想要得到的是字符串列表的映射,它将列表中字符串的前两个单词作为键,并将以该特定键开头的字符串作为值.
我试过以下几种方法:
jq 'reduce (.[] | capture("(?<env_type>([^/]*/[^/]*))").env_type as $key | {($key) : [.]}) as $item ({}; . *= $item)'
并获得:
{
"nonprod/global": [
"nonprod/global/app/dev03"
],
"prod/na": [
"prod/na/app/prod01"
],
"test/eu": [
"test/eu/app/cust01"
],
"prod/eu": [
"prod/eu/app/prod01"
]
}
我期待着:
{
"nonprod/global":[
"nonprod/global/app/sit01",
"nonprod/global/app/dev02",
"nonprod/global/app/dev03"
],
"prod/eu":[
"prod/eu/app/prod01"
],
"prod/na":[
"prod/na/app/prod01"
],
"test/eu":[
"test/eu/app/cust01"
]
}