【发布时间】:2018-11-22 22:15:13
【问题描述】:
我有一个 JSON 文件,我想在其中附加一个数组元素,使用 bash 和安装的最新 JQ。我可以附加它,但结果字符串具有 unicode 字符,如下所示。验证器数组中的第一个元素是原始的,第二个是附加的代码。 (不是整个 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"
}
]
打印地址元素单独打印没有任何 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。任何帮助或建议将不胜感激。
【问题讨论】:
-
代码看起来像 ANSI 颜色序列,而不是 unicode 字符。
-
是的,你完全正确。以前从不知道他们。使用“jq -M”选项删除颜色序列,效果很好。