样本输入/输出

样本输入/输出

/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
$ 

相关内容