[Previous] [Contents] [Next]

hd

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

Syntax:

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

Options:

-A format
Display the file offset field in the specified format. Valid formats are:
format  Display
x (hex, 7 digits)
o (octal, 10 digits)
d (decimal, 9 digits)
n (none)
-n count
Display only the first count bytes (default), blocks kilobytes or megabytes, depending on the trailing character (b for blocks, k for kilobytes, m for megabytes).
-s skip
Ignore the first skip bytes (default), blocks, kilobytes or megabytes, depending on the trailing character (b for blocks, k for kilobytes, m for megabytes).
-t fmt_string
Use this output/display format.
-v
Be verbose. Display all input.
file
The pathname of an input file. If no files are specified, the standard input is used. If a file is a dash character (-), hd reads from the standard input at that point in the sequence.

Description:

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

The hd utility processes input in 16-byte units that are formatted into a line. In the default output format:

For example, if you issue the following command:

    echo "abcdefghijklmnopqrstuvwxyz01234" | hd

you should see the following output:

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 -v option (verbose) inhibits hd's default behavior of folding multiple identical lines into a single line that contains an asterisk (*). When -v is specified, all data is displayed.

To exclude part of the input, you use the -n and -s options. You can specify the arguments to these options in hex (using a 0x prefix) or octal (using a 0 prefix).

The arguments to -n and -s also let you specify three different units:

To specify: Add this suffix:
blocks (512 bytes) b
kilobytes (1024 bytes) k
megabytes (1048576 bytes) m

To specify the output format, you use the -t option. The fmt_string argument -- which can be specified in decimal, hex, or octal -- instructs hd as to which format to use for presenting the output. The fmt_string argument can be one of the following:

fmt_string: Display as:
o[1|2|4] octal, 1-, 2-, or 4-byte objects (default is 2)
x[1|2|4] hex 1-, 2-, or 4-byte objects (default is 2)
X[1|2|4] hex 1-, 2-, or 4-bytes objects, with characters (default is 1)
d[1|2|4] decimal 1-, 2-, or 4-byte objects (default is 2)
c characters

The input, processed in 16-byte units formatted into a line, is displayed according to the option ([1|2|4]) you choose:

To display input as: Choose:
sixteen 1-byte objects 1
eight 2-byte objects 2
four 4-byte values per line 4

The X (uppercase) format instructs hd to redisplay the input block at the end of line in a special character format. The special character format displays printable characters "as is" and nonprintable characters as a single dot (.). If you don't specify the -t option, the default output format is the same as using the option -t X.

The c format displays printable characters as themselves. With the exception of the following characters, all other characters are displayed as 2-digit hex values.

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

Examples:

Display the 2nd to 11th sectors of the floppy disk /dev/fd0:

    hd -s 1b -n 10b /dev/fd0 | more

Exit status:

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

See also:

cat, head, tail, spatch


[Previous] [Contents] [Next]