jq -n 'reduce $ARGS.positional[] as $pathname ({};
.policies.Certificates.Install += [[[
($pathname | rtrimstr(".pem") + ".der" | sub(".*/";"")),
$pathname
]]])' --args /home/username/cert1.pem /home/username/cert2.pem /home/username/cert-B.pem
{
"policies": {
"Certificates": {
"Install": [
[
"cert1.der",
"/home/username/cert1.pem"
],
[
"cert2.der",
"/home/username/cert2.pem"
],
[
"cert-B.der",
"/home/username/cert-B.pem"
]
]
}
}
}
(Note that {"cert1.der","/home/username/cert1.pem"} is valid JSON, but is equivalent to {"cert1.der":null,"/home/username/cert1.pem":null}, which is unlikely what you want.)
$ cat my-file.json
{
"name": "Sebastian",
"policies": {
"Certificates": {
"Install": [
[
"certX.der",
"/home/username/certX.pem"
]
]
}
}
}
$ jq -n 'reduce $ARGS.positional[] as $pathname (input; .policies.Certificates.Install += [[[ ($pathname | rtrimstr(".pem") + ".der" | sub(".*/";"")), $pathname ]]])' --args /home/username/cert1.pem /home/username/cert2.pem /home/username/cert-B.pem <my-file.json
{
"name": "Sebastian",
"policies": {
"Certificates": {
"Install": [
[
"certX.der",
"/home/username/certX.pem"
],
[
"cert1.der",
"/home/username/cert1.pem"
],
[
"cert2.der",
"/home/username/cert2.pem"
],
[
"cert-B.der",
"/home/username/cert-B.pem"
]
]
}
}
}
$ jq -n 'reduce $ARGS.positional[] as $pathname (input; .policies.Certificates.Install += [[[ ($pathname | rtrimstr(".pem") + ".der" | sub(".*/";"")), $pathname ]]])' my-file.json --args /home/username/cert1.pem /home/username/cert2.pem /home/username/cert-B.pem
{
"name": "Sebastian",
"policies": {
"Certificates": {
"Install": [
[
"certX.der",
"/home/username/certX.pem"
],
[
"cert1.der",
"/home/username/cert1.pem"
],
[
"cert2.der",
"/home/username/cert2.pem"
],
[
"cert-B.der",
"/home/username/cert-B.pem"
]
]
}
}
}