Добавить новые элементы в массив JSON - PullRequest
0 голосов
/ 26 мая 2020

У меня есть файл конфигурации, который похож на

[
  "ECSClusterName=cluster",
  "VPCID=vpc-xxxx",
  "ALBName=ALB"
]

И с jq (или что-то еще bash -native) я хотел бы добавить 2 значения - EnvType и KMSID - (не имеет значения, где в конфигурационном файле), чтобы конечный результат выглядел как

[
  "EnvType=dev",
  "KMSID=xxxxx-yyyyyy-ffffff",
  "ECSClusterName=cluster",
  "VPCID=vpc-xxxx",
  "ALBName=ALB"
]

Ближайшее, что я был для одного значения, -

cat config.json | jq '.[-1] += ", test=test"'

Но который выводит

[
  "ECSClusterName=cluster",
  "VPCID=vpc-xxxx",
  "ALBName=ALB, test=test"
] 

Любая помощь очень ценится!

1 Ответ

1 голос
/ 26 мая 2020

Поместите новые пары key=value в массив и добавьте этот массив к исходному.

$ jq '. + ["EnvType=dev", "KMSID=xxxxx-yyyyyy-ffffff"]' config.json
[
  "ECSClusterName=cluster",
  "VPCID=vpc-xxxx",
  "ALBName=ALB",
  "EnvType=dev",
  "KMSID=xxxxx-yyyyyy-ffffff"
]
...