假设有二进制文件 a.bin ,前 10 个字节如下(使用 16 进制显示,原始数据使用小端模式):
39 00 00 00 12 3F 6F 5A A7 04
希望这样读取:
39 00 00 00 -> 第 1-4 个字节转为 int , 0x00000039 = 57
12 3F -> 5-6 个字节转为 int , 0x3F12 = 16146
6F 5A A7 04 -> 7-10 个字节转为 int , 0x045AA76F = 73049967
文件剩余部分也是这个格式,希望可以每 10 个字节,输出一行数据,每行 3 个数,并用空格间隔。
现在的处理方法: input:
echo $(od -An -t dI -j 0 -N 4 a.bin && od -An -t dI -j 4 -N 2 a.bin && od -An -t dI -j 6 -N 4 a.bin)
output:
57 16146 78076527
有些麻烦,有没有更好的方法呢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.