我有一个包含 4 字节浮点值的原始序列的文件 - 没有标题,没有格式,没有别的。我想以人类可读的格式打印一些浮点值,比如从第 n_1 个浮点数到第 n_2 个浮点数,包括在内。
在类 Unix 命令行环境中执行此操作的简单方法是什么?
我有一个包含 4 字节浮点值的原始序列的文件 - 没有标题,没有格式,没有别的。我想以人类可读的格式打印一些浮点值,比如从第 n_1 个浮点数到第 n_2 个浮点数,包括在内。
在类 Unix 命令行环境中执行此操作的简单方法是什么?
使用Unix 系统上命名的八进制转储实用程序;od
它也支持解析浮点二进制表示。
具体来说,让 N1 = n_1 * 4、N2 = n_2 * 4 和 N3 = N2 - N1,调用:
od -An -w4 -tf4 -j N1 -N N3 file_with_floats.bin
得到类似的东西:
-123.456
inf
111.222
对于具有三个 4 字节浮点值的文件。
解释:
-w4
: 打印每行 4 个字节的转储值(即一个浮点值)-An
: 没有在每一行前面加上文件的起始偏移量-tf4
: 浮点格式,每个值 4 个字节-j N1
: 跳过 N1 个字节-N N3
: 转储 N3 个字节