Given the JSON below, I am struggling for a jq query that will eliminate any items in places[].fThings[]
or places.sThings[]
that are not a partial string match to any of the strings found in toDo[]
. It should be noted not all places
will have fThings
or sThings
present. While it most likely be one or the other, both or neither could be present.
The output should be the same as the input with the non-matching *Things items filtered out. Empty arrays are fine to return.
I've tried a great many combinations of map(select(any(index(...))))
as well as contains
but I'm tripping over my own feet with Cannot index
or Cannot iterate
errors and fear I have missed something obvious.
{"places": [ {"location": "wapc1","type": "pcs,cstrl,refdoc","fGroup": "cert-apc-1","fThings": ["pcs_app#2.1#bp","pcs_app#2.0#bp","pcs_app#2.1#bp","pcs_app#2.1#cc","pcs_app#2.1#ex_acct","pcs_app#2.1#repr" ] }, {"location": "wapc2","type": "pcs,cstrl","fGroup": "cert-apc-2","fThings": ["pcs_app#2.1#mts","pcs_app#2.1#mts","pcs_app#2.1#mta","pcs_app#2.1#mtr","pcs_app#2.1#mop","pcs_app#2.1#mor","pcs_app#2.1#mov" ] }, {"location": "wapc3","type": "pcs,prx,cstrl","fGroup": "cert-apc-3","fThings": ["pcs_app#2.1#d2c","pcs_app#2.1#ci","pcs_app#2.1#co","pcs_app#2.1#gr","pcs_app#2.1#repr","pcs_app#2.1#refr","pcs_app#2.1#gf","pcs_app#2.1#dq" ],"aThings": ["prx" ] }, {"location": "wapc4","type": "pcs,prx,cstrl","fGroup": "cert-apc-4","fThings": ["pcs_app#2.1#mtr","pcs_app#2.1#mtstat","pcs_app#2.1#mop" ],"aThings": ["prx" ] }, {"location": "wwc1","type": "bsrv","sGroup": ["cert-bs-1" ],"sThings": ["ci_svc#1.35.0","config_svc#1","erec_svc#1.27","hm_svc#1.34.0","ri_svc#1.0.0" ] }, {"location": "wwc2","type": "bsrv","sGroup": ["cert-bs-2" ],"sThings": ["erec_svc#1.27","profile_svc#1.7","mor_svc#1.33.0","mta_svc#1.31.0","mtr_svc#1.39.0","mtstat_svc#1.35.0","ri_svc#1.0.0" ] }, {"location": "wwc3","type": "bsrv,r-bsrv","sGroup": ["cert-bs-3","cert-rs" ],"sThings": ["co_svc#1.36.0","d2c_svc#1.34.0","erec_svc#1.27","gr_svc#1.19.0","profile_svc#1.7","config_svc#1" ] }, {"location": "wwc4","type": "bsrv,r-bsrv","sGroup": ["cert-bs-4","cert-rs" ],"sThings": ["erec_svc#1.27","profile_svc#1.7","mtstat_svc#1.35.0","config_svc#1","bp_svc#1.46" ] } ],"toDo": ["bp_svc#1.46##1.46.0-2410.0-03","config_svc#1##1.12-2410.0-05","erec_svc#1.27##1.27-2410.0-03","pcs_app#2.1#bp##2.1-2410.0-05","pcs_app#2.1#ci##2.1-2410.0-05","pcs_app#2.1#co##2.1-2410.0-05","pcs_app#2.1#cc##2.1-2410.0-05","pcs_app#2.1#dq##2.1-2410.0-05","pcs_app#2.1#d2c##2.1-2410.0-05","pcs_app#2.1#df##2.1-2410.0-05" ]}