Portál AbcLinuxu, 5. května 2025 23:21
{ "elastiflow-flow-1.0-ufc-2020.12.29": { "index.opendistro.index_state_management.policy_id": null }, "elastiflow-flow-1.0-ufc-2020.12.27": { "index.opendistro.index_state_management.policy_id": "delete_index_after_day_30", "index": "elastiflow-flow-1.0-ufc-2020.12.27", "index_uuid": "DHG6k5G-Q1yeyaJXv6CQCQ", "policy_id": "delete_index_after_day_30" }, "elastiflow-flow-1.0-ufc-2020.12.28": { "index.opendistro.index_state_management.policy_id": "delete_index_after_day_30", "index": "elastiflow-flow-1.0-ufc-2020.12.28", "index_uuid": "GxIb6I76S6qY8Vo_sU_yuA", "policy_id": "delete_index_after_day_30" } }a rád bych pomocí
jq
vypsal objekty, které mají:
index.opendistro.index_state_management.policy_id == nullv této struktuře:
{ "elastiflow-flow-1.0-ufc-2020.12.29": { "index.opendistro.index_state_management.policy_id": null }Bohužel se mi to daří jen takto:
$ jq -r '.[] | select( has("policy_id") == false)' example.json { "index.opendistro.index_state_management.policy_id": null }což je pěkné, ale pro další běh skriptu bych potřeboval nadřazený řetězec
elastiflow-flow-1.0-ufc-2020.12.29
...
Existuje způsob, jak pomocí jq
filtrovat záznamy a zobrazit celou hiearchii? (Výše mám jen dvě úrovně, ale rád bych filtroval třeba i dle 3. podúrovně...)
Řešení dotazu:
jq 'to_entries | map(select(.value."index.opendistro.index_state_management.policy_id"==null)) | from_entries' example.json
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.