Similar to the same named functions in jq these functions convert to/from an object and an array of key-value pairs. This is most useful for performing operations on keys of maps.
Use with_entries(op) as a syntactic sugar for doing to_entries | op | from_entries.
to_entries Map
Given a sample.yml file of:
a:1b:2
then
yq'to_entries'sample.yml
will output
-key:avalue:1-key:bvalue:2
to_entries Array
Given a sample.yml file of:
-a-b
then
will output
to_entries null
Given a sample.yml file of:
then
will output
from_entries map
Given a sample.yml file of:
then
will output
from_entries with numeric key indices
from_entries always creates a map, even for numeric keys
Given a sample.yml file of:
then
will output
Use with_entries to update keys
Given a sample.yml file of:
then
will output
Use with_entries to update keys recursively
We use (.. | select(tag="map")) to find all the maps in the doc, then |= to update each one of those maps. In the update, with_entries is used.
Given a sample.yml file of:
then
will output
Custom sort map keys
Use to_entries to convert to an array of key/value pairs, sort the array using sort/sort_by/etc, and convert it back.