Portál AbcLinuxu, 27. října 2025 19:11
{
"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.