在Linux中将二进制文件的前100个字节打印为uint8

时间:2019-04-01 15:57:49

标签: javascript linux

以下Javascript示例读取并记录用户选择的文件的前100个字节(通过文件输入):

var blob = file.slice(0, 100);            

var fileReader = new FileReader();
fileReader.onload = function(event) {
    var arrayBuffer = event.target.result;
    var bytes = new Uint8Array(arrayBuffer);
    console.log('bytes', bytes);
};

fileReader.readAsArrayBuffer(blob);

通过hexdumpod之类的Linux实用程序实现相同的目的是什么?

更新:我正在寻找hexdump -d,但生成的是单字节小数,而不是2字节小数。

1 个答案:

答案 0 :(得分:1)

您可以使用hexdump进行此操作。至少可以说,hexdump的格式语法有点奇怪,而标准的man页面并没有太大帮助。

tl; dr版本是:

hexdump -n 100 -v -e '/1 "%03d\n"' your-file

如果您不关心前导零,则可以只使用%d

现在是什么意思:

  • -n 100表示仅查看输入的前100个字节
  • -v说要显示每个字节。通常,重复项在输出中折叠为*
  • -e '/1 "%03d\n"'是格式字符串(下面有更多内容)

格式字符串由“节”组成,这些节以n/m指示符开头,指示如何计数和分组字节。 /1表示应按每个1字节的组处理输入。在计数/分组指示符之后是一个格式字符串,基本上是printf()格式的样式。

Here is a fairly good explanation of hexdump courtesy of the Suse folks.