===== JQ Merge Arrays =====
{{tag>general linux aws}}
$ SYSTEMSET1='{"Systems":[{"System":"sys-1"},{"System":"sys-2"}],"Options":[{"Option":"opt-1"},{"Options":"opt-2"}]}'
$ SYSTEMSET2='{"Systems":[{"System":"sys-3"},{"System":"sys-4"}],"Options":[{"Option":"opt-3"},{"Options":"opt-4"}]}'
$ SYSTEMSET3='{"Systems":[{"System":"sys-5"},{"System":"sys-6"}],"Options":[{"Option":"opt-5"},{"Options":"opt-6"}]}'
$ MERGEDSET=""
$ echo $SYSTEMSET1 | jq
{
"Systems": [
{
"System": "sys-1"
},
{
"System": "sys-2"
}
],
"Options": [
{
"Option": "opt-1"
},
{
"Options": "opt-2"
}
]
}
$ echo $SYSTEMSET2 | jq
{
"Systems": [
{
"System": "sys-3"
},
{
"System": "sys-4"
}
],
"Options": [
{
"Option": "opt-3"
},
{
"Options": "opt-4"
}
]
}
$ echo $SYSTEMSET3 | jq
{
"Systems": [
{
"System": "sys-5"
},
{
"System": "sys-6"
}
],
"Options": [
{
"Option": "opt-5"
},
{
"Options": "opt-6"
}
]
}
$ echo $SYSTEMSET1 $SYSTEMSET2 | jq -s '.[0].Systems=[.[].Systems[]]|.[0]'
{
"Systems": [
{
"System": "sys-1"
},
{
"System": "sys-2"
},
{
"System": "sys-3"
},
{
"System": "sys-4"
}
],
"Options": [
{
"Option": "opt-1"
},
{
"Options": "opt-2"
}
]
}
$ MERGEDSET=$(echo $SYSTEMSET1 $SYSTEMSET2 | jq -s '.[0].Systems=[.[].Systems[]]|.[0]')
$ echo $MERGEDSET $SYSTEMSET3 | jq -s '.[0].Systems=[.[].Systems[]]|.[0]'
{
"Systems": [
{
"System": "sys-1"
},
{
"System": "sys-2"
},
{
"System": "sys-3"
},
{
"System": "sys-4"
},
{
"System": "sys-5"
},
{
"System": "sys-6"
}
],
"Options": [
{
"Option": "opt-1"
},
{
"Options": "opt-2"
}
]
}
$ MERGEDSET=$(echo $MERGEDSET $SYSTEMSET3 | jq -s '.[0].Systems=[.[].Systems[]]|.[0]')
$ echo $MERGEDSET $SYSTEMSET2 | jq -s '.[0].Options=[.[].Options[]]|.[0]'
{
"Systems": [
{
"System": "sys-1"
},
{
"System": "sys-2"
},
{
"System": "sys-3"
},
{
"System": "sys-4"
},
{
"System": "sys-5"
},
{
"System": "sys-6"
}
],
"Options": [
{
"Option": "opt-1"
},
{
"Options": "opt-2"
},
{
"Option": "opt-3"
},
{
"Options": "opt-4"
}
]
}
$ MERGEDSET=$(echo $MERGEDSET $SYSTEMSET2 | jq -s '.[0].Options=[.[].Options[]]|.[0]')
$ echo $MERGEDSET $SYSTEMSET3 | jq -s '.[0].Options=[.[].Options[]]|.[0]'
{
"Systems": [
{
"System": "sys-1"
},
{
"System": "sys-2"
},
{
"System": "sys-3"
},
{
"System": "sys-4"
},
{
"System": "sys-5"
},
{
"System": "sys-6"
}
],
"Options": [
{
"Option": "opt-1"
},
{
"Options": "opt-2"
},
{
"Option": "opt-3"
},
{
"Options": "opt-4"
},
{
"Option": "opt-5"
},
{
"Options": "opt-6"
}
]
}
$ MERGEDSET=$(echo $MERGEDSET $SYSTEMSET3 | jq -s '.[0].Options=[.[].Options[]]|.[0]')