Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HEXDUMP(1)		    General Commands Manual		    HEXDUMP(1)

NAME
       hexdump -- ascii, decimal, hexadecimal, octal dump

SYNOPSIS
       hexdump	[-bCcdovx]  [-e	 format_string]	 [-f  format_file] [-n length]
	       [-s offset] [file ...]

DESCRIPTION
       The hexdump utility is a	filter which displays the specified files,  or
       the standard input, if no files are specified, in a user-specified for-
       mat.

       The options are as follows:

       -b      One-byte	 octal display.	 Display the input offset in hexadeci-
	       mal, followed by	sixteen	space-separated, three	column,	 zero-
	       filled, bytes of	input data, in octal, per line.

       -C      Canonical hex+ASCII display.  Display the input offset in hexa-
	       decimal,	followed by sixteen space-separated, two column, hexa-
	       decimal bytes, followed by the same sixteen bytes in %_p	format
	       enclosed	in `|' characters.

       -c      One-byte	 character display.  Display the input offset in hexa-
	       decimal,	followed by  sixteen  space-separated,	three  column,
	       space-filled, characters	of input data per line.

       -d      Two-byte	decimal	display.  Display the input offset in hexadec-
	       imal,  followed	by  eight  space-separated, five column, zero-
	       filled, two-byte	units of input data, in	unsigned decimal,  per
	       line.

       -e format_string
	       Specify a format	string to be used for displaying data.

       -f format_file
	       Specify a file that contains one	or more	newline	separated for-
	       mat strings.  Empty lines and lines whose first non-blank char-
	       acter is	a hash mark (`#') are ignored.

       -n length
	       Interpret  only	length	bytes of input.	 By default, length is
	       interpreted as a	decimal	number.	 With  a  leading  0x  or  0X,
	       length  is interpreted as a hexadecimal number, otherwise, with
	       a leading 0, length is interpreted as an	octal number.

       -o      Two-byte	octal display.	Display	the input offset in  hexadeci-
	       mal,  followed  by  eight  space-separated,  six	 column, zero-
	       filled, two byte	quantities of input data, in octal, per	line.

       -s offset
	       Skip offset bytes from the beginning of the input.  By default,
	       offset is interpreted as	a decimal number.  With	a  leading  0x
	       or  0X,	offset	is interpreted as a hexadecimal	number,	other-
	       wise, with a leading 0, offset is interpreted as	an octal  num-
	       ber.  Appending the character b,	k, or m	to offset causes it to
	       be  interpreted as a multiple of	512, 1024, or 1048576, respec-
	       tively.

       -v      The -v option causes hexdump to display all input data.	 With-
	       out  the	-v option, any number of groups	of output lines, which
	       would be	identical to the immediately preceding group of	output
	       lines (except for the input offsets), are replaced with a  line
	       comprised of a single asterisk (`*').

       -x      Two-byte	 hexadecimal  display.	 Display  the  input offset in
	       hexadecimal, followed by	eight, space separated,	 four  column,
	       zero-filled, two-byte quantities	of input data, in hexadecimal,
	       per line.

       For  each input file, hexdump sequentially copies the input to standard
       output, transforming the	data according to the format strings specified
       by the -e and -f	options, in the	order that they	were specified.

   Formats
       A format	string contains	any  number  of	 format	 units,	 separated  by
       whitespace.   A	format	unit  contains up to three items: an iteration
       count, a	byte count, and	a format.

       The iteration count is an optional positive integer, which defaults  to
       one.  Each format is applied iteration count times.

       The  byte  count	is an optional positive	integer.  If specified,	it de-
       fines the number	of bytes to be interpreted by each  iteration  of  the
       format.

       If  an iteration	count and/or a byte count is specified,	a single slash
       (`/') must be placed after the iteration	count and/or before  the  byte
       count  to  disambiguate them.  Any whitespace before or after the slash
       is ignored.

       The format is required and must be surrounded by	 double	 quote	("  ")
       marks  (the  quote  mark	is a special character in many shell programs,
       and may have to be escaped from the shell).  It	is  interpreted	 as  a
       fprintf-style format string (see	fprintf(3)), with the following	excep-
       tions:

	     	 An  asterisk  (*)  may	not be used as a field width or	preci-
		 sion.

	     	 A byte	count or field precision is required for each `s' con-
		 version character (unlike the fprintf(3) default which	prints
		 the entire string if the precision is unspecified).

	     	 The conversion	characters `h',	`l', `n', `p', and `q' are not
		 supported.

	     	 The single character escape  sequences	 described  in	the  C
		 standard are supported:

		       NUL		    \0
		       <alert character>    \a
		       <backspace>	    \b
		       <form-feed>	    \f
		       <newline>	    \n
		       <carriage return>    \r
		       <tab>		    \t
		       <vertical tab>	    \v

       hexdump also supports the following additional conversion strings:

       _a[dox]	Display	 the  input  offset, cumulative	across input files, of
		the next byte to be displayed.	The appended characters	d,  o,
		and  x specify the display base	as decimal, octal or hexadeci-
		mal respectively.

       _A[dox]	Identical to the _a conversion string except that it  is  only
		performed once,	when all of the	input data has been processed.

       _c	Output	characters  in the default character set.  Nonprinting
		characters are displayed in three character,  zero-padded  oc-
		tal,  except  for those	representable by standard escape nota-
		tion  (see  above),  which  are	 displayed  as	two  character
		strings.

       _p	Output	characters  in the default character set.  Nonprinting
		characters are displayed as a single dot `.'.

       _u	Output US ASCII	characters, with the  exception	 that  control
		characters  are	 displayed  using  the	following, lower-case,
		names.	Other non-printable characters are displayed as	 hexa-
		decimal	strings.

		   000 nul  001	soh  002 stx  003 etx  004 eot	005 enq
		   006 ack  007	bel  008 bs   009 ht   00A lf	00B vt
		   00C ff   00D	cr   00E so   00F si   010 dle	011 dc1
		   012 dc2  013	dc3  014 dc4  015 nak  016 syn	017 etb
		   018 can  019	em   01A sub  01B esc  01C fs	01D gs
		   01E rs   01F	us   07F del

       The default and supported byte counts for the conversion	characters are
       as follows:

	     %_c, %_p, %_u, %c	     One byte counts only.

	     %d, %i, %o, %u, %X, %x  Four  byte	 default,  one,	 two, four and
				     eight byte	counts supported.

	     %E, %e, %f, %G, %g	     Eight byte	default, four byte counts sup-
				     ported.

       The amount of data interpreted by each format string is the sum of  the
       data  required  by each format unit, which is the iteration count times
       the byte	count, or the iteration	count times the	number	of  bytes  re-
       quired by the format if the byte	count is not specified.

       The  input  is manipulated in "blocks", where a block is	defined	as the
       largest amount of data specified	by any format string.  Format  strings
       interpreting  less than an input	block's	worth of data, whose last for-
       mat unit	both interprets	some number of bytes and does not have a spec-
       ified iteration count, have the iteration count incremented  until  the
       entire  input  block has	been processed or there	is not enough data re-
       maining in the block to satisfy the format string.

       If, either as a result of user specification or hexdump	modifying  the
       iteration  count	as described above, an iteration count is greater than
       one, no trailing	whitespace characters are output during	the last iter-
       ation.

       It is an	error to specify a byte	count as well as  multiple  conversion
       characters  or  strings unless all but one of the conversion characters
       or strings is _a	or _A.

       If, as a	result of the specification of the -n  option  or  end-of-file
       being reached, input data only partially	satisfies a format string, the
       input  block  is	zero-padded sufficiently to display all	available data
       (i.e., any format units overlapping the end of data will	 display  some
       number of the zero bytes).

       Further output by such format strings is	replaced by an equivalent num-
       ber of spaces.  An equivalent number of spaces is defined as the	number
       of spaces output	by an s	conversion character with the same field width
       and precision as	the original conversion	character or conversion	string
       but with	any `+', ` ', `#' conversion flag characters removed, and ref-
       erencing	a NULL string.

       If  no  format strings are specified, the default display is equivalent
       to specifying the -x option.

EXIT STATUS
       The hexdump utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
       Display characters using	a fieldwidth of	4, and using special names for
       control characters:

	     $ hexdump -e '"%4_u"' file

       An example file for use with the	-f option, to display the input	in pe-
       rusal format:

	     "%06.6_ao "  12/1 "%3_u "
	     "\t\t" "%_p "
	     "\n"

       An example file for use with the	-f option, which implements the	equiv-
       alent of	the -x option:

	     "%07.7_Ax\n"
	     "%07.7_ax " 8/2 "	 %04x "	"\n"

SEE ALSO
       od(1)

HISTORY
       The hexdump utility first appeared in 4.3BSD-Reno.

OpenBSD	7.1			March 31, 2022			    HEXDUMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hexdump&sektion=1&manpath=OpenBSD+7.1>

home | help