如何使用hexdump显示前x个字节?

16

我有两个文件,希望查看它们的前40个字节是否相似。如何使用十六进制转储实现这一点?


1
“比较前N个字节”和“显示前N个字节”是不同的。请注意,这不是重复内容。 - Robin Hsu
3个回答

16

如果您使用的是BSD的hexdump实用程序(也可以安装为hd,具有不同的默认输出格式),则可以提供-n40命令行参数以限制转储为前40个字节:

hexdump -n40 filename

如果你使用了Posix标准的od命令,你需要大写字母N。你可能会发现以下调用方式有用:

od -N40 -w40 -tx1 -Ax filename

(你也可以使用 hexdump 完成这个操作,但需要花费更多的工作去找出格式字符串 :) )。


2

试试这个:

head -c 40 myfile | hexdump

0

不确定你为什么需要在这里使用十六进制转储

diff <(dd bs=1 count=40 if=file1) <(dd bs=1 count=40 if=file2)

使用 hexdump:
diff <(dd bs=1 count=40 if=file1|hexdump) <(dd bs=1 count=40 if=file2|hexdump)

1
假设文件不是文本文件(换句话说,它们包含各种非可打印字符),则 diff 仅告诉您文件是否相同。使用 hd(或 hexdump,但 hd 通常是更友好的格式),您可以判断它们是否类似,就像问题中的情况一样。顺便说一下,dd bs=40 count=1 更有效率,并且您可能想将 dd 的字节计数报告扔到位桶(2>>/dev/null)。 - rici
我想实际看到它们。谢谢。 - OHHH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接