In the first synopsis line,
od
displays
file
in
one or more formats,
as
selected by type_string.
If the -t option is missing,
octal output (-t o2)
is the default.
If no
file
is specified, the standard input is used.
Multiple file arguments are concatenated into
a single long file.
Address offsets, including those used
with -A and -N, accumulate
across the files.
In the second synopsis line,
od
displays
file
in
one or more formats,
as selected by the first argument. If the first argument is missing
-o is default.
If no
file
is specified, the standard input is used.
od processes supplementary code set characters
according to the locale specified in the LC_CTYPE
environment variable (see LANG on
environ(5)).
Command options
-Aaddress_base
The base of the offset address written at the start of all output lines
is set by address_base. The meaning of the character
address_base is:
d
Use decimal base
o
Use octal base
x
Use hexadecimal base
n
Don't write the offset address
-jskip
Jump over skip bytes from the start of the input.
If the value of skip is greater than the combined length of the
input files, an error is generated.
The skip argument is normally interpreted as a positive decimal
integer. However, if the number is preceded by 0x or
0X it is interpreted as a hexadecimal number, otherwise if it
is preceded by 0 it is interpreted as an octal number.
Also, if one of the characters ``b'', ``k'', or ``m'' is the
final character in skip, the offset is interpreted as a multiple
of 512, 1024, or 1048576 bytes, respectively.
-Ncount
Process only count bytes of the input files.
If the value of count plus skip (if present) is greater
than the combined length of the input files, an error is generated.
The count argument is normally interpreted as a positive decimal
integer. However, if the number is preceded by 0x or
0X it is interpreted as a hexadecimal number, otherwise if it
is preceded by 0 is interpreted as an octal number.
-ttype_string
The type_string is a sequence of output format specifiers that
each specify the display format of a corresponding line in the output.
So, if three specifiers are given, each input line will be written
three times, in the three specified formats. The specifiers in
type_string have no separators.
Each specifier consists of a type specification character possibly
followed by a further qualifier. The choices of type specification
character are:
a
Named Character
c
Character
d
Signed Decimal
f
Floating Point
o
Octal
u
Unsigned Decimal
x
Hexadecimal
The d, f, o, u, and x type specifiers can
be optionally followed by a positive decimal integer, which gives the
size of that data type in bytes for this specification. The d,
o, u, and x type specifiers can replace the integer
with one of the following qualifier characters:
Type qualifier
Equivalent C language type
C
char
S
short
I
int
L
long
In the same way, the f type specification may replace the integer with
one of the following qualifier characters:
Type qualifier
Equivalent C language type
F
float
D
double
L
long double
See
``Output format''
for more details on each type's output format.
-v
Write all input data. If -v is not specified, sequences of lines
that would all be identical but for the offset address are abbreviated
to a single asterisk () on a single line.
Output format
Each type specifier can produce a variety of formats, described below.
a
The a type specifier only examines the least significant seven
bits of each byte in the input. If the result is a printable character,
then that character is printed, otherwise one of the names in the table
below is printed.
Value
Name
Value
Name
Value
Name
Value
Name
\000
(nul)
\001
(soh)
\002
(stx)
\003
(etx)
\004
(eot)
\005
(enq)
\006
(ack)
\007
(bel)
\010
(bs)
\011
(ht)
\012
(nl)
\013
(vt)
\014
(ff)
\015
(cr)
\016
(so)
\017
(si)
\020
(dle)
\021
(dcl)
\022
(dc2)
\023
(dc3)
\024
(dc4)
\025
(nak)
\026
(syn)
\027
(etb)
\030
(can)
\031
(em)
\032
(sub)
\033
(esc)
\034
(fs)
\035
(gs)
\036
(rs)
\037
(us)
\040
(sp)
\177
(del)
c
Bytes are interpreted as characters according to the current locale
specified in LC_CTYPE (see LANG on
environ(5)).
Printable single-byte characters are printed as usual.
Printable multibyte characters are written in the position of the first
byte of the character, with all further byte positions filled with
``''.
Certain non-printable characters appear as C-language escapes:
Character
Escape sequence
null
\0
alert
\a
backspace
\b
formfeed
\f
newline
\n
return
\r
tab
\t
vertical tab
\v
All other non-printable characters appear as a sequence of 3-digit
octal numbers, one for each byte. See
``Examples''.
dfoux
The qualifiers for these type specifiers correspond in size to the C
language data types of the same names, for the particular architecture
that od is running on.
Compatibility options
The following options are supported for compatibility.
For the purposes of this description, word refers to a 16-bit unit, independent
of the word size of the machine; long word refers to a 32-bit unit, and
double long word refers to a 64-bit unit.
-b
Interpret bytes in octal.
-c
Interpret bytes as single-byte characters.
Multibyte characters are treated as non-graphic characters.
Certain non-graphic characters appear as C-language escapes:
null=``\0'',
backspace=``\b'',
form-feed=``\f'',
new-line=``\n'',
return=``\r'',
tab=``\t'';
others appear as 3-digit octal numbers.
For example:
echo "hello world" | od -c
0000000 h e l l o w o r l d \n
0000014
-D
Interpret long words in unsigned decimal.
-d
Interpret words in unsigned decimal.
-F
Interpret double long words
in extended precision.
-f
Interpret long words
in floating point.
-O
Interpret long words
in unsigned octal.
-o
Interpret words in octal.
-S
Interpret long words
in signed decimal.
-s
Interpret words in signed decimal.
-v
Show all data (verbose)
-X
Interpret long words in hex.
-x
Interpret words in hex.
offset specifies an offset
from the beginning of file where
the display will begin.
offset is normally interpreted
as octal bytes.
If ``.'' is appended, offset is interpreted in
decimal.
If ``x'' is appended, offset is interpreted
in hexadecimal.
If offset is omitted, the ``.'' and ``x''
can still be used to display decimal and hexadecimal
addresses, respectively.
If ``b'' is appended, offset is interpreted in
blocks of 512 bytes.
If file is omitted,
offset must be preceded by
``+''.
The display continues until an end-of-file is reached.
Environment variables
If POSIX2 is set, -c is treated as -t c; similarly,
-s is treated as -t d2.
Examples
echo "hello world" | od -t c
0000000 h e l l o w o r l d \n
0000014
echo "hello world" | od -t ax1o1d1
0000000 h e l l o sp w o r l d nl
68 65 6c 6c 6f 20 77 6f 72 6c 64 0a
150 145 154 154 157 040 167 157 162 154 144 012
104 101 108 108 111 032 119 111 114 108 100 010
0000014
Files
/usr/lib/locale/locale/LC_MESSAGES/uxdfm
language-specific message file (See LANG on
environ(5).)
Notices
If the input ends when any of the type specifiers still require further
bytes to complete a value, the input is extended with NULL bytes,
unless the -Ncount option is used.
In the latter case, additional bytes from the input stream
are processed beyond count.
od is changed for POSIX2.
Application authors should use the
new (first) synopsis; the second synopsis
may no longer be supported in the future.