如何以十六进制格式打印前10个字节?


Answers:


10

我来到这里看到三个答案,认为我没有什么可补充的,这将是一个练习,有多少人可以在被问到的问题的第一分钟发布相同的1-liner。但我发现人们使用了一些新奇的hexdump工具。该命令的方式要比2个字母长; 它暗指除了The One True Base之外的一些基地(基地8); 从它的名字甚至可以看出它的作用。显然这不是Unix方式。

所以这就是od(“八进制转储”)的乐趣。

第一个GNU,正如您在Linux Mint上找到的那样:

od --format=x1 --read-bytes=10 foo

现在BSD,具有讽刺意味的是它实际上是同一个程序hexdump

od -t x1 -N 10 foo

1
我在8位微处理器上切齿,一切都是用十六进制完成的。所以对我而言,一个真正的基础是16.我从'84开始就使用Unix而且我总是有一件事,总是讨厌它是用八进制固定的:我不能忍受它的3位编码的八进制它不会从一个字节无缝扩展到多个字节。C和其他语言中的八进制整数文字是一个火车残骸,至今仍然会造成严重破坏。(+1,顺便说一下)
Adrian Pronk 2014年

11

选项-l len | -len len适用于:写<len>八位字节后停止。

像这样使用文件:

xxd -l 10 file

要么

hexdump -C -n 10 file

其中与xxd中-n len-l选项相同。


5

你可以xxd用来做那件事。

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

此打印头10字节(-l 10的)FILENAME以纯十六进制格式(-ps)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.