Quantcast
Channel: Active questions tagged jq - Stack Overflow
Viewing all articles
Browse latest Browse all 527

How to convert a json response into yaml in bash

$
0
0

I read data from a json file with jq. I wanna append the results into a yaml file, but I dont get it working. I am quite new to shell programming. My goal is to append that "users" to an existing "users"-Array in a yaml file.

This is my json file:

#$DEFAULTS_FILE{"users":  [    {"name":"pi","gecos": "Hypriot Pirate","sudo":"ALL=(ALL) NOPASSWD:ALL","shell": "/bin/bash","groups":"users,docker,video","plain_text_passwd":"pi","lock_passwd":"false","ssh_pwauth":"true","chpasswd": {"expire": false}    },    {"name":"admin","gecos": "Hypriot Pirate","sudo":"ALL=(ALL) NOPASSWD:ALL","shell": "/bin/bash","primary-group": "users","groups":"users,docker,adm,dialout,audio,plugdev,netdev,video","ssh-import-id":"None","plain_text_passwd":"pi","lock_passwd":"true","ssh_pwauth":"true","chpasswd": "{expire: false}","ssh-authorized-keys": ["ssh-rsa abcdefg1234567890 YOUR_KEY@YOURHOST.local"]    }  ]  }

I filter it with that:

cat $DEFAULTS_FILE | jq .users

I have no clue how to convert that json into a yaml.

My expected result should be:

users:  - name:                pi    gecos:               "Hypriot Pirate"    sudo:                ALL=(ALL) NOPASSWD:ALL    shell:               /bin/bash    groups:              users,docker,video    plain_text_passwd:   pi    lock_passwd:         false    ssh_pwauth:          true    chpasswd: { expire:  false }  - name:                admin    primary-group:       users    shell:               /bin/bash    sudo:                ALL=(ALL) NOPASSWD:ALL    groups:              users,docker,adm,dialout,audio,plugdev,netdev,video    ssh-import-id:       None

I tried to use a second tool called yq which is similar to jq and can write yaml files. But I have no positive progress.

EDIT

I know that I can add content to the yaml with that:

yq w -i "my.yml""users[+]""some content"

But I dont know how to merge my json into that.

Any help or hint would be nice, thank you in advance...


Viewing all articles
Browse latest Browse all 527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>