arrays - jq 将字节整数数组内爆为原始字节
问题描述
我有jq
一个字节数组,就像[0, 255, 128, 0, 127]
我想转换为二进制文件一样。
它几乎像这样工作:
jq --raw-output '. | implode' in.json > out.bin
但不幸的是,它将输入解释为 Unicode 代码点,并将结果写为 UTF-8 字符串。有二进制版本implode
吗?
解决方案
jq 生成 JSON 或(带有 -r 标志)UTF-8,但您可以考虑使用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
在任何情况下,请注意首字母.|
是不必要的。
推荐阅读
- sql - SQL注入中如何选择第二行?
- r - 是否可以在 LaTeX 中使用 roxygen 注释?
- vb.net - OpenFileDialog1_FileOk 事件返回 NullReferenceException
- html - 为什么flexbox 内的宽度没有正确更新?
- matlab - 如何对两个 4 位数字进行乘法运算,将它们视为 MATLAB 中的多项式
- django - django cookiecutter 在 docker 中编译 sass
- java - 尝试使用 Java.swing 创建一个 MenuBar,并创建了一个 JMenu() 对象,但它不允许我将它添加到框架中并且不知道为什么?
- jquery - 你如何在ajax中创建一个变量,对函数的其余部分是全局的
- mysql - MySQL INSERT 使用带有额外变量的 SELECT
- asp.net-mvc-5 - How to set up IIS 10 for MVC 5?