1
1
mirror of https://github.com/wader/fq.git synced 2024-11-23 00:57:15 +03:00
fq/dev/format_summary.jq

35 lines
657 B
Plaintext
Raw Normal View History

2021-08-19 19:07:52 +03:00
#!/usr/bin/env fq -f
def recurse_depth(f; cond):
def _r($depth):
( ( .
| select(cond)
| {depth: $depth, value: .}
)
, ( [f]
| to_entries[] as $e
| $e.value
| _r($depth + if cond then 1 else 0 end)
)
);
_r(0);
[ ( recurse_depth(
.[]?;
._format
)
| . + {
norm_path: (.value._path | map(if type == "number" then "index" end)),
}
)
]
| chunk_by(.norm_path)
| map(.[0] + {count: length})
| .[]
| [ if .depth > 0 then " "*.depth else empty end
, (.value._format + if .count > 1 then "*\(.count) " else " " end)
, (.value._path | path_to_expr)
]
| join("")
| println