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:
- the file offset field, displayed as 7 hexadecimal digits
- a space to separate the file offset field from the data
- the data, displayed as 16 space-separated bytes in hex
(which corresponds to the x1 format)
- the same data displayed in ASCII, if printable; unprintable data appears as dots
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.