在Linux中将unt8的二进制文件的前100个字节打印出来

问题描述 投票:0回答:1

以下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字节小数。

javascript linux
1个回答
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.

© www.soinside.com 2019 - 2024. All rights reserved.