相关疑难解决方法(0)

如何在bash中将json响应转换为yaml

我用jq从json文件中读取数据。我想将结果附加到yaml文件中,但无法正常工作。我对Shell编程很陌生。我的目标是在yaml文件中将“用户”附加到现有的“用户” -Array中。

这是我的json文件:

#$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"]
    }
  ]
  }
Run Code Online (Sandbox Code Playgroud)

我用它过滤:

cat $DEFAULTS_FILE | jq .users

我不知道如何将json转换为Yaml。

我的预期结果应该是:

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 } …
Run Code Online (Sandbox Code Playgroud)

bash shell json yaml jq

4
推荐指数
7
解决办法
4354
查看次数

标签 统计

bash ×1

jq ×1

json ×1

shell ×1

yaml ×1