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

FreeBSD Manual Pages

  
 
  

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

NAME
       hexdump,	hd -- ASCII, decimal, hexadecimal, octal dump

SYNOPSIS
       hexdump	[-bcCdovx]  [-e	 format_string]	 [-f  format_file] [-n length]
	       [-s offset] file	...
       hd  [-bcdovx]  [-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      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.

       -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.

	       Calling the command hd implies this option.

       -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.

       -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      Cause hexdump to	display	all input data.	 Without  the  -v  op-
	       tion,  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 com-
	       prised 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  ig-
       nored.

       The  format  is	required  and must be surrounded by double quote (" ")
       marks.  It  is  interpreted  as	a  fprintf-style  format  string  (see
       fprintf(3)), with the following exceptions:

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

	     	 A byte	count or field precision is required  for  each	 ``s''
		 conversion  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

       The hexdump utility 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
		   hexadecimal 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.  Nonprint-
		   ing characters are  displayed  in  three  character,	 zero-
		   padded  octal,  except  for those representable by standard
		   escape notation (see	above),	which  are  displayed  as  two
		   character strings.

       _p	   Output  characters in the default character set.  Nonprint-
		   ing characters are displayed	as a single ".".

       _u	   Output US ASCII characters, with the	exception that control
		   characters are displayed using the  following,  lower-case,
		   names.  Characters greater than 0xff, hexadecimal, are dis-
		   played as hexadecimal 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 and four byte
				     counts supported.

	     %E, %e, %f, %G, %g	     Eight  byte default, four and twelve byte
				     counts supported.

       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 and	hd utilities exit 0 on success,	and >0 if an error oc-
       curs.

EXAMPLES
       Dump input in canonical (hex+ASCII) form:

	     $ echo "FreeBSD: The power	to serve" | hexdump -C
	     00000000  46 72 65	65 42 53 44 3a	20 54 68 65 20 70 6f 77	 |FreeBSD: The pow|
	     00000010  65 72 20	74 6f 20 73 65	72 76 65 0a		 |er to	serve.|
	     0000001c

       Same as above but skipping the first 4 bytes of stdin and  interpreting
       only 3 bytes of input:

	     $ echo "FreeBSD: The power	to serve" | hexdump -C -s 4 -n 3
	     00000004  42 53 44						 |BSD|
	     00000007

       Assuming	 a  format  file  named	format.txt with	the following contents
       that specify a perusal format:

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

       Dump input in canonical form using the format in	format.txt:

	     $ echo "FreeBSD" |	hexdump	-f format.txt -C
	     000000   F	  r   e	  e   B	  S   D	 lf			     F r e e B S D .
	     00000000  46 72 65	65 42 53 44 0a				 |FreeBSD.|
	     00000008

       Assuming	a format file named format.txt	with  the  following  contents
       that simulate the -x option:

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

       Dump input in canonical form using the format in	format.txt:

	     $ echo "FreeBSD: The power	to serve" | hexdump -f format.txt -C
	     0000000  7246 6565	5342 3a44 5420 6568 7020 776f
	     00000000  46 72 65	65 42 53 44 3a	20 54 68 65 20 70 6f 77	 |FreeBSD: The pow|
	     0000010  7265 7420	206f 6573 7672 0a65
	     00000010  65 72 20	74 6f 20 73 65	72 76 65 0a		 |er to	serve.|
	     0000001c

SEE ALSO
       od(1)

FreeBSD	14.3			 June 29, 2020			    HEXDUMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hexdump&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help