Hexdump - Linux命令 - UNIX命令

名称

hexdump - ascii,十进制,十六进制,八进制转储

概要

[ - bcCdovx ] - 字符 [ - e format_string ] - 字符 [ - f format_file ] - 字符 [ - n 长度 ] - 字符 [ - s 跳过 ] 文件...

描述

hexdump实用程序是一种过滤器,它以用户指定的格式显示指定的文件或标准输入(如果未指定文件)。

选项如下:

-b

单字节八进制显示以十六进制显示输入偏移量,后跟十六个空格分隔的三列零填充输入数据字节,每行八进制。

-C

单字节字符显示以十六进制显示输入偏移量,后跟每行输入数据的十六个空格分隔的三列空格填充字符。

-C

规范的十六进制+ ASCII显示器以十六进制显示输入偏移量,后跟十六个空格分隔的两列十六进制字节,后面跟着相同的十六个字节,以%_p格式包含在“`|”字符中。

-d

两字节十进制显示以十六进制显示输入偏移量,后跟八个空格分隔的,五列,零填充的双字节输入数据单位,每行为无符号十进制数。

-e format_string

指定用于显示数据的格式字符串。

-f format_file

指定一个包含一个或多个换行分隔格式字符串的文件。 第一个非空白字符为散列标记的空行和行( 被忽略。

-n 长度

只解释输入的长度字节。

-o

双字节八进制显示以十六进制显示输入偏移,然后以八进制显示每行八个空格分隔的六列零填充两字节输入数据。

-s 偏移

从输入的开头跳过偏移字节。 默认情况下, 偏移量被解释为一个十进制数。 使用前导的0x0X 偏移量将被解释为十六进制数字,否则,前导0 偏移量将被解释为八进制数字。 将字符bkm附加到偏移量会使其被解释为512 10241048576的倍数。

-v

-v选项使hexdump显示所有输入数据。 如果没有-v选项,任何数量的输出线组将与前一组输出线相同(输入偏移除外),这些输出线组由单个星号组成。

-X

双字节十六进制显示以十六进制形式显示输入偏移量,然后以十六进制显示每行八个空格分隔的四列零填充两字节输入数据。

对于每个输入文件,按顺序将输入复制到标准输出,按照-e-f选项指定的格式字符串按照指定的顺序转换数据。

格式

格式字符串包含任意数量的格式单位,用空格分隔。 格式单元最多包含三个项目:迭代计数,字节计数和格式。

迭代计数是可选的正整数,默认为1。 每种格式都应用迭代计数次数。

字节数是可选的正整数。 如果指定它,则定义格式的每次迭代要解释的字节数。

如果指定了迭代计数和/或字节计数,则必须在迭代计数之后和/或字节计数之前放置单斜杠以消除它们的歧义。

斜杠之前或之后的任何空格都将被忽略。

该格式是必需的,并且必须用双引号(“”)标记包围。 它被解释为fprintf样式的格式字符串(请参阅fprintf(3)),但以下情况除外:

Hexdump还支持以下附加转换字符串:

_a [ dox ]

显示下一个要显示的字节的输入文件的累积输入偏移量。 附加字符d ox分别指定显示基数为十进制,八进制或十六进制。

_A [ dox ]

_a转换字符串相同,只是在处理完所有输入数据后才执行一次。

_C

输出默认字符集中的字符。 非打印字符以三个字符显示,零填充八进制数字,除了可以用标准转义符号表示的那些字符(见上面),它们显示为两个字符串。

_p

输出默认字符集中的字符。 非打印字符显示为一个`` “”

_u

输出美国ASCII字符,但使用以下小写名称显示控制字符除外。 大于0xff的字符(十六进制)将显示为十六进制字符串。

000 nul 001 soh 002 stx 003 etx 004 eot 005 enq

006 ack 007 bel 008 bs 009 ht 00A lf 00B vt

00C ff 00D cr 00E so 00F si 010 dle 011 dc1

012 dc2 013 dc3 014 dc4 015 nak 016 syn 017 etb

018 can 019 em 01A sub 01B esc 01C fs 01D gs

01E rs 01F us 0FF del

转换字符的默认和支持的字节数如下所示:

%_c,%_p,%_u,%c

一个字节只能计数。

%d,%i,%o %u,%X,%x

支持四字节默认值,一个,两个和四个字节计数。

%E,%e,%f %G,%g

默认八字节,支持四字节计数。

每个格式字符串解释的数据量是每个格式单元所需的数据总和,即迭代次数乘以字节数,或者迭代次数乘以格式所需的字节数(如果字节数不是指定。

输入在``blocks''中被处理,其中一个块被定义为由任何格式字符串指定的最大数据量。 格式化字符串解释小于输入块的数据价值,其最后一个格式单元解释一定数量的字节并且没有指定的迭代计数,迭代计数递增直到整个输入块已经被处理或者没有足够的数据保留在块中以满足格式字符串。

如果由于用户指定或hexdump修改上述迭代计数而导致迭代计数大于1,则在上次迭代期间不输出尾随空白字符。

指定字节计数以及多个转换字符或字符串是错误的,除非其中一个转换字符或字符串都是_a_A

如果由于指定-n选项或文件结束符而导致输入数据仅部分满足格式字符串,则输入数据块被填零以充分显示所有可用数据(即任何重叠的格式单位数据的结尾将显示一些零字节数)。

通过这种格式字符串的进一步输出被相同数量的空格取代。 相同数量的空格被定义为s转换字符输出的空格数,它与原始转换字符或转换字符串具有相同的字段宽度和精度,但带有任何`` + '``````` ''转换标志字符被删除,并引用一个NULL字符串。

如果未指定格式字符串,则默认显示等同于指定-x选项。

成功时退出0,如果发生错误,则退出> 0。

例子

阅读格式显示输入内容:

“%06.6_ao”12/1“%3_u”“\ t \ t”“%_p”“\ n”

实现-x选项:

“%07.7_Ax \ n”“%07.7_ax”8/2“%04x”“\ n”

标准

该实用程序预计将与St -p1003.2兼容。