J'ai une configuration avec le contenu à échanger avec des extraits de fichier séparé. Comment pourrais-je réaliser cela?Remplacer l'élément de tableau dans le hachage JSON avec le contenu d'un autre fichier
fichier de configuration pourrait ressembler à:
# config file
{
"keep": "whatever type of value",
"manipulate": [
{
"foo": "bar",
"cat": {
"color": "grey"
},
"type": "keep",
"detail": "keep whole array element"
},
{
"stuff": "obsolete",
"more_stuff": "obsolete",
"type": "replace",
"detail": "replace whole array element with content from separate file"
},
{
"foz": "baz",
"dog": {
"color": "brown"
},
"type": "keep",
"detail": "keep whole array element"
},
],
"also_keep": "whatever type of value"
}
Le contenu (provenant de fichier séparé) à insérer en remplacement de obsolète élément de tableau:
# replacement
{
"stuff": "i want that",
"fancy": "very",
"type": "new"
}
Le résultat souhaité devrait ressembler à:
# result
{
"keep": "whatever kind of value",
"manipulate": [
{
"foo": "bar",
"cat": {
"color": "grey"
},
"type": "keep",
"detail": "keep whole array element"
},
{
"stuff": "i want that",
"fancy": "very",
"type": "new"
},
{
"foz": "baz",
"dog": {
"color": "brown"
},
"type": "keep",
"detail": "keep whole array element"
},
],
"also_keep": "whatever kind of value",
}
Exigences:
- remplacement de contenu doit se faire en fonction de la valeur de
type
clé. - Utilisez de préférence
jq
et les outils bash/linux courants. - commande élément Array doit rester même
Vous devez expliquer comment ce remplacement fonctionne, car il est pas évident pour moi comment vous avez obtenu « résultat » de « fichier de configuration ". Ce n'est pas un simple remplacement. – Stalinko
@Stalinko Vous avez peut-être manqué la 2ème section _ # replacement_? Et, oui, la question est, comment obtenir (_ # result_) de l'entrée originale (_ # configfile_) en utilisant snippet _ # replacement_ – ITL