簡體   English   中英

在Linux中將二進制文件的前100個字節打印為uint8

[英]Print first 100 bytes of a binary file as uint8 in 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字節的小數。

您可以使用hexdump做到這一點。 至少可以說, hexdump的格式語法有些奇怪,標准man頁並沒有太大幫助。

tl; dr版本是:

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

如果您不關心前導零,則可以只使用%d

現在這意味着什么:

  • -n 100表示僅查看輸入的前100個字節
  • -v表示顯示每個字節。 通常,重復在輸出中折疊為*
  • -e '/1 "%03d\\n"'是格式字符串(更多信息請-e '/1 "%03d\\n"'下文)

格式字符串由“節”組成,這些節以有關如何計數和分組字節的n/m指示符開頭。 /1表示應按每個1字節的組處理輸入。 在計數/分組指示符之后是一個格式字符串,基本上是printf()格式的樣式。

這是Suse員工對hexdump禮貌的一個很好的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM