是否有像 hexdump 这样的实用程序可以处理非本地字节序?

EHN*_*EHN 8 linux command-line hexdump

Hexdump 读取二进制数据并对其进行适当格式化的能力,例如,它可以通过管道传输到 awk 非常有用,但我经常需要读取二进制数据与系统本机数据具有不同字节序的文件. 特别是,我需要在小端机器上读取大端数据。我的理想解决方案是“hexdump”,带有一个反转字节序的开关,但这样的开关似乎不存在。

这个问题有什么好的“次优”解决方案吗?

小智 5

至少对于 16 位字,可以dd conv=swab像这样通过管道传输,

cat file.dat | dd conv=swab | od -t x2
Run Code Online (Sandbox Code Playgroud)


Red*_*ick 3

是否有像 hexdump 这样的实用程序可以处理非本机字节序?

是的,该实用程序称为 Perl。

实际上Data::HexDumper - 尽管你可以推出自己的.

数字格式
指定如何格式化数据的字符串。它可以是以下任何一个,
您会注意到它们与 Perl 的 pack 函数具有相同的含义:

C——无符号字符
S - 无符号 16 位,本机字节序
v 或 S< - 无符号 16 位、小端字节序
n 或 S> - 无符号 16 位,大端字节序
L - 无符号 32 位,本机字节序
V 或 L< - 无符号 32 位、小端字节序
N 或 L> - 无符号 32 位、大端字节序
Q - 无符号 64 位、本机字节序
Q< - 无符号 64 位、小端字节序
Q> - 无符号 64 位、大端字节序