jq将字节整数的数组内推到原始字节

时间:2019-05-13 14:12:35

标签: arrays json jq ascii-8bit

使用jq,我有一个字节数组,例如[0, 255, 128, 0, 127],我想将其转换为二进制文件。

几乎的工作方式如下:

jq --raw-output '. | implode' in.json > out.bin

但是不幸的是,它将输入解释为Unicode代码点,并将结果写为UTF-8字符串。是否有implode的二进制版本?

1 个答案:

答案 0 :(得分:1)

jq要么生成JSON,要么生成UTF-8(带有-r标志),但是您可以考虑使用iconv或类似的字词,例如

$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]'  | iconv -c -f utf-8 -t ISO-8859-16

输出显然无法在此处显示,因此请考虑:

$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]'  | iconv -c -f utf-8 -t ISO-8859-16 | xxd -ps
00ff80287f

$ jq -j --raw-output 'implode' <<< '[0, 255, 128, 40, 127]'  | xxd -ps
00c3bfc280287f

无论如何,请注意 首字母.|是不必要的。