Добавление массива JSON через JQ вводит символы Unicode в строку - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть файл JSON, в который я хочу добавить элемент массива, используя bash и последнюю установленную версию JQ.Я могу добавить его, но полученная строка содержит символы Unicode, как показано ниже.Первый элемент в массиве validators является оригиналом, а второй - добавленным кодом.(не весь файл json)

"validators": [
{
  "address": "85BAF568E7F89277E47D3FC8E111775A4F6992FA",
  "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "BCzCLcW7rZ9VJgAtEUoDN17qcZw8ZvpYbPsL6eOy3No="
  },
  "power": "10",
  "name": ""
},
{
  "address": "\u001b[32m\"F75E15A3949824B685A3C5BFCDEED7E3DA4277AE\"\u001b[0m\r",
  "pub_key": "\u001b[37m{\u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[37m:\u001b[0m\u001b[32m\"tendermint/PubKeyEd25519\"\u001b[0m\u001b[37m,\u001b[0m\u001b[34;1m\"value\"\u001b[0m\u001b[37m:\u001b[0m\u001b[32m\"INeR51z41k6jPAEJ5rV+1TY+4sxnbIykc4bfJFmSCQ8=\"\u001b[0m\u001b[37m\u001b[37m}\u001b[0m\r",
  "power": "10",
  "name": "node2"
}
]

При печати элемента address отдельно печатается элемент без символов кодировки utf / unicode.

{
    "type": "tendermint/PubKeyEd25519",
    "value": "BCzCLcW7rZ9VJgAtEUoDN17qcZw8ZvpYbPsL6eOy3No="
}

Я объединяю код, используя следующий код:

cat genesis.json.src | jq --arg pub_key $PK --arg name node$i --arg addr $ADDR '.validators+= [{address: $addr, pub_key: $pub_key, power:"10",name:$name}]' > genesis.json.dest

Я использую macOS.Буду признателен за любую помощь или предложение.

1 Ответ

0 голосов
/ 22 ноября 2018

Как упомянуто в комментарии @choroba, это символы последовательности цветов.Я удалил их, добавив флаг -M для JQ, который отключает цвета.

...