Método 1: Use a opção -c
( --compact-output
) de jq , fornecendo um documento de linha única.
Método 2: Converta o arquivo configuration.yml
inteiro em JSON, use jq para substituir a variável de uma maneira compatível com JSON, converta-a de volta para YAML.
yaml2json configuration.yaml \
| jq --slurpfile obj configuration.json \
'(.data | .["configuration.json"]) = ({test: $obj[0] | .formats} | tojson)' \
| json2yaml > configuration2.yaml
Método 3: Use uma linguagem de programação com seu próprio suporte a YAML e JSON:
#!/usr/bin/env python3
import json, yaml
with open("configuration.yml", "r") as fh:
yconf = yaml.load(fh)
with open("configuration.json", "r") as fh:
jconf = json.load(fh)
jconf = {"test": jconf["formats"]}
yconf["data"]["configuration.json"] = json.dumps(jconf)
with open("configuration2.yml", "w") as fh:
yaml.dump(yconf, stream=fh)