|
|
1.1 root 1: .\" Copyright (c) 1989, 1990 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)hexdump.1 5.10 (Berkeley) 7/24/90
19: .\"
20: .Dd July 24, 1990
21: .Dt HEXDUMP 1
22: .Os BSD 4.4
23: .Sh NAME
24: .Nm hexdump
25: .Nd ascii, decimal, hexadecimal, octal dump
26: .Sh SYNOPSIS
27: .Nm hexdump
28: .Op Fl bcdovx
29: .Op Fl e Ar format_string
30: .Op Fl f Ar format_file
31: .Op Fl n Ar length
32: .Op Fl s Ar skip
33: .Ar file ...
34: .Sh DESCRIPTION
35: The hexdump utility is a filter which displays the specified files, or
36: the standard input, if no files are specified, in a user specified
37: format.
38: .Pp
39: The options are as follows:
40: .Tw Fl
41: .Tp Fl b
42: .Em One-byte octal display .
43: Display the input offset in hexadecimal, followed by sixteen
44: space-separated, three column, zero-filled, bytes of input data,
45: in octal, per line.
46: .Tp Fl c
47: .Em One-byte character display .
48: Display the input offset in hexadecimal, followed by sixteen
49: space-separated, three column, space-filled, characters of input
50: data per line.
51: .Tp Fl d
52: .Em Two-byte decimal display.
53: Display the input offset in hexadecimal, followed by eight
54: space-separated, five column, zero-filled, two-byte units
55: of input data, in unsigned decimal, per line.
56: .Tc Fl e
57: .Ws
58: .Ar format_string
59: .Cx
60: Specify a format string to be used for displaying data.
61: .Tc Fl f
62: .Ws
63: .Ar format_file
64: .Cx
65: Specify a file that contains one or more newline separated format strings.
66: Empty lines and lines whose first non-blank character is a hash mark
67: .Pf \&( Cm \&# )
68: are ignored.
69: .Tc Fl n
70: .Ws
71: .Ar length
72: .Cx
73: Interpret only
74: .Ar length
75: bytes of input.
76: .Tp Fl o
77: .Em Two-byte octal display.
78: Display the input offset in hexadecimal, followed by eight
79: space-separated, six column, zero-filled, two byte quantities of
80: input data, in octal, per line.
81: .Tc Fl s
82: .Ws
83: .Ar offset
84: .Cx
85: Skip
86: .Ar offset
87: bytes from the beginning of the input.
88: By default,
89: .Ar offset
90: is interpreted as a decimal number.
91: With a leading
92: .Cm 0x
93: or
94: .Cm 0X ,
95: .Ar offset
96: is interpreted as a hexadecimal number,
97: otherwise, with a leading
98: .Cm 0 ,
99: .Ar offset
100: is interpreted as an octal number.
101: Appending the character
102: .Cm b ,
103: .Cm k ,
104: or
105: .Cm m
106: to
107: .Ar offset
108: causes it to be interpreted as a multiple of
109: .Li 512 ,
110: .Li 1024 ,
111: or
112: .Li 1048576 ,
113: respectively.
114: .Tp Fl v
115: The
116: .Fl v
117: option causes hexdump to display all input data.
118: Without the
119: .Fl v
120: option, any number of groups of output lines, which would be
121: identical to the immediately preceding group of output lines (except
122: for the input offsets), are replaced with a line comprised of a
123: single asterisk.
124: .Tp Fl x
125: .Em Two-byte hexadecimal display.
126: Display the input offset in hexadecimal, followed by eight, space
127: separated, four column, zero-filled, two-byte quantities of input
128: data, in hexadecimal, per line.
129: .Tp
130: .Pp
131: For each input file,
132: .Nm hexdump
133: sequentially copies the input to standard output, transforming the
134: data according to the format strings specified by the
135: .Fl e
136: and
137: .Fl f
138: options, in the order that they were specified.
139: .Ss Formats
140: A format string contains any number of format units, separated by
141: whitespace.
142: A format unit contains up to three items: an iteration count, a byte
143: count, and a format.
144: .Pp
145: The iteration count is an optional positive integer, which defaults to
146: one.
147: Each format is applied iteration count times.
148: .Pp
149: The byte count is an optional positive integer.
150: If specified it defines the number of bytes to be interpreted by
151: each iteration of the format.
152: .Pp
153: If an iteration count and/or a byte count is specified, a single slash
154: must be placed after the iteration count and/or before the byte count
155: to disambiguate them.
156: Any whitespace before or after the slash is ignored.
157: .Pp
158: The format is required and must be surrounded by double quote
159: (" ") marks.
160: It is interpreted as a fprintf-style format string (see
161: .Xr fprintf 3 ) ,
162: with the
163: following exceptions:
164: .Df I
165: .Bu
166: An asterisk (*) may not be used as a field width or precision.
167: .Bu
168: A byte count or field precision
169: .Em is
170: required for each ``s'' conversion
171: character (unlike the
172: .Xr fprintf 3
173: default which prints the entire string if the precision is unspecified).
174: .Bu
175: The conversion characters ``h'', ``n'', and ``p'' are not
176: supported.
177: .Bu
178: The single character escape sequences
179: described in the C standard are supported:
180: .Ds I
181: .Cw <alert_character>
182: .Cl NUL \e0
183: .Cl <alert character> \ea
184: .Cl <backspace> \eb
185: .Cl <form-feed> \ef
186: .Cl <newline> \en
187: .Cl <carriage return> \er
188: .Cl <tab> \et
189: .Cl <vertical tab> \ev
190: .Cw
191: .De
192: .Tp
193: .De
194: .Pp
195: Hexdump also supports the the following additional conversion strings:
196: .Tw Fl
197: .Tc Cm \&_a
198: .Op Cm dox
199: .Cx
200: Display the input offset, cumulative across input files, of the
201: next byte to be displayed.
202: The appended characters
203: .Cm d ,
204: .Cm o ,
205: and
206: .Cm x
207: specify the display base
208: as decimal, octal or hexadecimal respectively.
209: .Tc Cm \&_A
210: .Op Cm dox
211: .Cx
212: Identical to the
213: .Cm \&_a
214: conversion string except that it is only performed
215: once, when all of the input data has been processed.
216: .Tp Cm \&_c
217: Output characters in the default character set.
218: Nonprinting characters are displayed in three character, zero-padded
219: octal, except for those representable by standard escape notation
220: (see above),
221: which are displayed as two character strings.
222: .Tp Cm _p
223: Output characters in the default character set.
224: Nonprinting characters are displayed as a single
225: .Dq Cm \&. .
226: .Tp Cm _u
227: Output US ASCII characters, with the exception that control characters are
228: displayed using the following, lower-case, names.
229: Characters greater than 0xff, hexadecimal, are displayed as hexadecimal
230: strings.
231: .Cw \&000_nul \&001_soh \&002_stx \&003_etx \&004_eot
232: .Cl \&000\ nul\t001\ soh\t002\ stx\t003\ etx\t004\ eot\t005\ enq
233: .Cl \&006\ ack\t007\ bel\t008\ bs\t009\ ht\t00A\ lf\t00B\ vt
234: .Cl \&00C\ ff\t00D\ cr\t00E\ so\t00F\ si\t010\ dle\t011\ dc1
235: .Cl \&012\ dc2\t013\ dc3\t014\ dc4\t015\ nak\t016\ syn\t017\ etb
236: .Cl \&018\ can\t019\ em\t01A\ sub\t01B\ esc\t01C\ fs\t01D\ gs
237: .Cl \&01E\ rs\t01F\ us\t0FF\ del
238: .Cw
239: .Tp
240: .Pp
241: The default and supported byte counts for the conversion characters
242: are as follows:
243: .Df I
244: .Tw %c,_%c,_%c,_%c,_%c,_%c
245: .Tp Li \&%_c , %_p , %_u , \&%c
246: One byte counts only.
247: .Tc Li \&%d , \&%i , \&%o ,
248: .Li \&\ %u , \&%X , \&%x
249: .Cx
250: Four byte default, one and two byte counts supported.
251: .Tc Li \&%E , \&%e , \&%f ,
252: .Li \&\ %G , \&%g
253: .Cx
254: Eight byte default, four byte counts supported.
255: .Tp
256: .De
257: .Pp
258: The amount of data interpreted by each format string is the sum of the
259: data required by each format unit, which is the iteration count times the
260: byte count, or the iteration count times the number of bytes required by
261: the format if the byte count is not specified.
262: .Pp
263: The input is manipulated in ``blocks'', where a block is defined as the
264: largest amount of data specified by any format string.
265: Format strings interpreting less than an input block's worth of data,
266: whose last format unit both interprets some number of bytes and does
267: not have a specified iteration count, have the the interation count
268: incremented until the entire input block has been processed or there
269: is not enough data remaining in the block to satisfy the format string.
270: .Pp
271: If, either as a result of user specification or hexdump modifying
272: the iteration count as described above, an iteration count is
273: greater than one, no trailing whitespace characters are output
274: during the last iteration.
275: .Pp
276: It is an error to specify a byte count as well as multiple conversion
277: characters or strings unless all but one of the conversion characters
278: or strings is
279: .Cm \&_a
280: or
281: .Cm \&_A .
282: .Pp
283: If, as a result of the specification of the
284: .Fl n
285: option or end-of-file being reached, input data only partially
286: satisfies a format string, the input block is zero-padded sufficiently
287: to display all available data (i.e. any format units overlapping the
288: end of data will display some number of the zero bytes).
289: .Pp
290: Further output by such format strings is replaced by an equivalent
291: number of spaces.
292: An equivalent number of spaces is defined as the number of spaces
293: output by an
294: .Cm s
295: conversion character with the same field width
296: and precision as the original conversion character or conversion
297: string but with any
298: .Dq Li \&+ ,
299: .Dq \&\ \& ,
300: .Dq Li \&#
301: conversion flag characters
302: removed, and referencing a NULL string.
303: .Pp
304: If no format strings are specified, the default display is equivalent
305: to specifying the
306: .Fl x
307: option.
308: .Pp
309: .Nm hexdump
310: exits 0 on success and >0 if an error occurred.
311: .Sh EXAMPLES
312: Display the input in perusal format:
313: .Pp
314: .Ds I
315: "%06.6_ao " 12/1 "%3_u "
316: "\et\et" "%_p "
317: "\en"
318: .De
319: .Pp
320: Implement the \-x option:
321: .Pp
322: .Ds I
323: "%07.7_Ax\en"
324: "%07.7_ax " 8/2 "%04x " "\en"
325: .De
326: .Sh SEE ALSO
327: .Xr adb 1
328: .Sh STANDARDS
329: The
330: .Nm hexdump
331: utility is expected to be POSIX 1003.2 compatible.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.