/dev/dsp
这是在与和交互的背景下pacat
。
理想情况下,我希望能够指定编码机制(大端与小端、字符/短/长)。
作为奖励,某种形式的二进制结构打包可能会更好。
我基本上在想类似的事情numpy 的数据类型但在外壳上。
样本输入/输出
> seq 11 | bincat --big -n 1 | hd
01 02 03 04 05 06 07 08
09 0A 0B
答案1
编程语言应该可以轻松完成这项任务;这是一种从输入的数字列表中打包 64 位整数(大端或小端)和本机 32、16 和 8 位的方法
$ cat input
-1
2
$ < input perl -pe '$_=pack "q>",$_' | xxd
00000000: ffff ffff ffff ffff 0000 0000 0000 0002 ................
$ < input perl -pe '$_=pack "q<",$_' | xxd
00000000: ffff ffff ffff ffff 0200 0000 0000 0000 ................
$ < input perl -pe '$_=pack "l",$_' | xxd
00000000: ffff ffff 0200 0000 ........
$ < input perl -pe '$_=pack "s",$_' | xxd
00000000: ffff 0200 ....
$ < input perl -pe '$_=pack "c",$_' | xxd
00000000: ff02 ..
$
另一种方法需要知道二进制文件的编写方式,否则数字可能会完全错误
$ jot 255 | perl -pe '$_=pack "l>",$_' > 32big
$ < 32big perl -nE 'say for unpack "l*",$_' | head -3
16777216
33554432
50331648
$ < 32big perl -nE 'say for unpack "l>*",$_' | head -3
1
2
3
$