hd

Display files in decimal, hex, octal, or ASCII (UNIX)

Syntax:

hd [-8] [-A format] [-n count] [-s skip] 
   [-t format[fmt_string]] [-v] [file...]

Runs on:

QNX Neutrino, Microsoft Windows

Options:

-8
Use 8-bit ASCII characters (default 7).
-A format
Display the file offset field in the specified format. Valid formats are:
  • d — decimal, 9 digits
  • n — none (omit this field)
  • o — octal, 10 digits
  • x — hexadecimal, 7 digits
-n count
Display only count bytes of input. You can add a trailing character to specify units of blocks (b), kilobytes (k), or megabytes (m). The case of this character is ignored.
-s skip
Ignore the first skip bytes of data. You can add a trailing character to specify units of blocks (b), kilobytes (k), or megabytes (m). The case of this character is ignored.
-t format[fmt_string]
Use this output format to display the data. The format is a single character; for some formats, you can include a fmt_string to specify the size of the fields. See Output formats,” below.
-v
Be verbose. If you don't specify the -v option, hd folds multiple identical lines into a single line that contains an asterisk (*).
file
The pathname of an input file. If you don't specify any files, hd reads from standard input. If a file is a hyphen (-), hd reads from the standard input at that point in the sequence.

Description:

The hd utility displays data in decimal, hex, octal, or ASCII. The name hd (hex dump) is derived from the default output format.

This utility processes input in 16-byte units and formats them into a line. The default output includes:

For example:

$ echo "abcdefghijklmnopqrstuvwxyz01234" | hd
0000000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop
0000010 71 72 73 74 75 76 77 78 79 7a 30 31 32 33 34 0a qrstuvwxyz01234.

The data isn't repeated in ASCII if you specify the -t option:

$ echo "abcdefghijklmnopqrstuvwxyz01234" | hd -t x1
0000000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
0000010 71 72 73 74 75 76 77 78 79 7a 30 31 32 33 34 0a

To exclude part of the input, use the -n and -s options. You can specify the arguments to these options in decimal, hex (using a 0x prefix), or octal (using a 0 prefix). The default units for these options are bytes, but you can specify different units as follows:

To specify: Add this suffix:
Blocks (512 bytes) B or b
Kilobytes (1024 bytes) K or k
Megabytes (1048576 bytes) M or m

Output formats

To specify the output format, use the -t option. The format argument tells hd which format to use for presenting the output:

a
Named characters. Display printable characters as themselves, and nonprintable characters as a single dot (.).
c
Characters. Display printable characters as themselves; display all other characters as 2-digit hex values, except for the following:
ASCII mnemonic Value Representation
NUL 00 \0
<alert> 07 \a
<backspace> 08 \b
<tab> 09 \t
<newline> 0a \n
<vertical tab> 0b \v
<formfeed> 0c \f
<carriage return> 0d \r
d[1|2|4|C|S|I|L]
Decimal, in objects the size of an int by default.
f[4|8|F|D|L]
Floating point, in objects the size of an float by default.
o[1|2|4|C|S|I|L]
Octal, in objects the size of an int by default.
u[1|2|4|C|S|I|L]
Unsigned decimal, in objects the size of an int by default.
x[1|2|4|C|S|I|L]
Hexadecimal, in objects the size of an int by default.

The input, processed in 16-byte units formatted into a line, is displayed according to the fmt_string you specify:

To display input as: Choose:
Sixteen 1-byte objects 1
Eight 2-byte objects 2
Four 4-byte values per line 4
Two 8-byte values per line 8
char C
double D
float F
int I
long or long double (depending on the format) L
short S

Examples:

Display the second to eleventh sectors of the hard disk, /dev/hd0:

hd -s 1b -n 10b /dev/hd0

Exit status:

0
All input files were processed successfully.
>0
An error occurred.