mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			397 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
| NAME
 | |
|        xxd - make a hexdump or do the reverse.
 | |
| 
 | |
| SYNOPSIS
 | |
|        xxd -h[elp]
 | |
|        xxd [options] [infile [outfile]]
 | |
|        xxd -r[evert] [options] [infile [outfile]]
 | |
| 
 | |
| DESCRIPTION
 | |
|        xxd  creates a hex dump of a given file or standard input.
 | |
|        It can also convert a hex dump back to its original binary
 | |
|        form.   Like  uuencode(1)  and  uudecode(1)  it allows the
 | |
|        transmission of binary data in a `mail-safe' ASCII  repre-
 | |
|        sentation,  but  has the advantage of decoding to standard
 | |
|        output.  Moreover, it can be used to perform  binary  file
 | |
|        patching.
 | |
| 
 | |
| OPTIONS
 | |
|        If  no infile is given, standard input is read.  If infile
 | |
|        is specified as a `-' character, then input is taken  from
 | |
|        standard  input.  If no outfile is given (or a `-' charac-
 | |
|        ter is in its place), results are sent to standard output.
 | |
| 
 | |
|        Note that a "lazy" parser is used which does not check for
 | |
|        more than the first option letter, unless  the  option  is
 | |
|        followed  by  a parameter.  Spaces between a single option
 | |
|        letter and its  parameter  are  optional.   Parameters  to
 | |
|        options  can be specified in decimal, hexadecimal or octal
 | |
|        notation.  Thus -c8, -c 8, -c 010  and  -cols  8  are  all
 | |
|        equivalent.
 | |
| 
 | |
| 
 | |
|        -a | -autoskip
 | |
|               toggle  autoskip:  A single '*' replaces nul-lines.
 | |
|               Default off.
 | |
| 
 | |
|        -b | -bits
 | |
|               Switch to bits (binary digits)  dump,  rather  than
 | |
|               hexdump.  This option writes octets as eight digits
 | |
|               "1"s and "0"s instead of a normal hexacecimal dump.
 | |
|               Each line is preceded by a line number in hexadeci-
 | |
|               mal and followed by an ascii (or ebcdic)  represen-
 | |
|               tation. The command line switches -r, -p, -i do not
 | |
|               work with this mode.
 | |
| 
 | |
|        -c cols | -cols cols
 | |
|               -c cols | -cols cols format <cols> octets per line.
 | |
|               Default 16 (-i: 12, -ps: 30, -b: 6). Max 256.
 | |
| 
 | |
|        -E | -EBCDIC
 | |
|               Change the character encoding in the righthand col-
 | |
|               umn from ASCII to EBCDIC.  This does not change the
 | |
|               hexadecimal  representation. The option is meaning-
 | |
|               less in combinations with -r, -p or -i.
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          1
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
|        -g bytes | -groupsize bytes
 | |
|               seperate the output of every <bytes> bytes (two hex
 | |
|               characters  or  eight bit-digits each) by a whites-
 | |
|               pace.  Specify -g 0 to suppress grouping.   <Bytes>
 | |
|               defaults  to  2  in normal mode and 1 in bits mode.
 | |
|               Grouping does not apply to  postscript  or  include
 | |
|               style.
 | |
| 
 | |
|        -h | -help
 | |
|               print a summary of available commands and exit.  No
 | |
|               hex dumping is performed.
 | |
| 
 | |
|        -i | -include
 | |
|               output in C include file style. A  complete  static
 | |
|               array  definition is written (named after the input
 | |
|               file), unless xxd reads from stdin.
 | |
| 
 | |
|        -l len | -len len
 | |
|               stop after writing <len> octets.
 | |
| 
 | |
|        -p | -ps | -postscript | -plain
 | |
|               output in postscript continuous hexdump style. Also
 | |
|               known as plain hexdump style.
 | |
| 
 | |
|        -r | -revert
 | |
|               reverse  operation: convert (or patch) hexdump into
 | |
|               binary.  If not writing to stdout, xxd writes  into
 | |
|               its output file without truncating it. Use the com-
 | |
|               bination -r -p  to  read  plain  hexadecimal  dumps
 | |
|               without  line number information and without a par-
 | |
|               ticular column layout.  Additional  Whitespace  and
 | |
|               line-breaks are allowed anywhere.
 | |
| 
 | |
|        -seek offset
 | |
|               When  used after -r : revert with <offset> added to
 | |
|               file positions found in hexdump.
 | |
| 
 | |
|        -s [+][-]seek
 | |
|               start at <seek> bytes abs. (or rel.) infile offset.
 | |
|               +  indicates  that the seek is relative to the cur-
 | |
|               rent stdin  file  position  (meaningless  when  not
 | |
|               reading  from  stdin).   -  indicates that the seek
 | |
|               should be that many characters from the end of  the
 | |
|               input (or if combined with
 | |
|                +  :  before  the  current  stdin  file position).
 | |
|               Without -s option, xxd starts at the  current  file
 | |
|               position.
 | |
| 
 | |
|        -u     use  upper case hex letters. Default is lower case.
 | |
| 
 | |
|        -v | -version
 | |
|               show version string.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          2
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
| CAVEATS
 | |
|        xxd -r has some builtin magic while evaluating line number
 | |
|        information.   If  the  ouput  file  is seekable, then the
 | |
|        linenumbers at the start of each hexdump line may  be  out
 | |
|        of  order,  lines may be missing, or overlapping. In these
 | |
|        cases xxd will lseek(2) to the next position. If the  out-
 | |
|        put  file  is  not  seekable, only gaps are allowed, which
 | |
|        will be filled by null-bytes.
 | |
| 
 | |
|        xxd -r never generates parse errors. Garbage  is  silently
 | |
|        skipped.
 | |
| 
 | |
|        When  editing  hexdumps,  please  note  that  xxd -r skips
 | |
|        everything on the input line after reading enough  columns
 | |
|        of hexadecimal data (see option -c). This also means, that
 | |
|        changes to the printable ascii  (or  ebcdic)  columns  are
 | |
|        always  ignored.  Reverting  a plain (or postscript) style
 | |
|        hexdump with xxd -r -p does not depend on the correct num-
 | |
|        ber  of  columns.  Here an thing that looks like a pair of
 | |
|        hex-digits is interpreted.
 | |
| 
 | |
|        Note the difference between
 | |
|        % xxd -i file
 | |
|        and
 | |
|        % xxd -i < file
 | |
| 
 | |
|        xxd -s +seek may be  different  from  xxd  -s  seek  ,  as
 | |
|        lseek(2) is used to "rewind" input.  A '+' makes a differ-
 | |
|        ence if the input source is stdin,  and  if  stdin's  file
 | |
|        position  is  not at the start of the file by the time xxd
 | |
|        is started and given its input.   The  following  examples
 | |
|        may help to clarify (or further confuse!)...
 | |
| 
 | |
|        Rewind  stdin before reading; needed because the `cat' has
 | |
|        already read to the end of stdin.
 | |
|        % sh -c 'cat > plain_copy; xxd -s 0 > hex_copy' < file
 | |
| 
 | |
|        Hexdump from file position 0x480 (=1024+128) onwards.  The
 | |
|        `+'  sign  means  "relative to the current position", thus
 | |
|        the `128' adds to the 1k where dd left off.
 | |
|        % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128  >
 | |
|        hex_snippet' < file
 | |
| 
 | |
|        Hexdump from file position 0x100 ( = 1024-768) on.
 | |
|        % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 >
 | |
|        hex_snippet' < file
 | |
| 
 | |
|        However, this is a rare situation and the use  of  `+'  is
 | |
|        rarely  needed.   the author prefers to monitor the effect
 | |
|        of xxd with strace(1) or truss(1), whenever -s is used.
 | |
| 
 | |
| EXAMPLES
 | |
|        Print everything but  the  first  three  lines  (hex  0x30
 | |
|        bytes) of file
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          3
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
|        % xxd -s 0x30 file
 | |
| 
 | |
|        Print 3 lines (hex 0x30 bytes) from the end of file
 | |
|        % xxd -s -0x30 file
 | |
| 
 | |
|        Print  120  bytes as continuous hexdump with 40 octets per
 | |
|        line.
 | |
|        % xxd -l 120 -ps -c 20 xxd.1
 | |
|        2e544820585844203120224d616e75616c207061
 | |
|        676520666f7220787864220a2e5c220a2e5c2220
 | |
|        32317374204d617920313939360a2e5c22204d61
 | |
|        6e207061676520617574686f723a0a2e5c222020
 | |
|        2020546f6e79204e7567656e74203c746f6e7940
 | |
|        7363746e7567656e2e7070702e67752e6564752e
 | |
| 
 | |
|        Hexdump the first 120 bytes  of  this  man  page  with  12
 | |
|        octets per line.
 | |
|        % xxd -l 120 -c 12 xxd.1
 | |
|        0000000: 2e54 4820 5858 4420 3120 224d  .TH XXD 1 "M
 | |
|        000000c: 616e 7561 6c20 7061 6765 2066  anual page f
 | |
|        0000018: 6f72 2078 7864 220a 2e5c 220a  or xxd"..\".
 | |
|        0000024: 2e5c 2220 3231 7374 204d 6179  .\" 21st May
 | |
|        0000030: 2031 3939 360a 2e5c 2220 4d61   1996..\" Ma
 | |
|        000003c: 6e20 7061 6765 2061 7574 686f  n page autho
 | |
|        0000048: 723a 0a2e 5c22 2020 2020 546f  r:..\"    To
 | |
|        0000054: 6e79 204e 7567 656e 7420 3c74  ny Nugent <t
 | |
|        0000060: 6f6e 7940 7363 746e 7567 656e  ony@sctnugen
 | |
|        000006c: 2e70 7070 2e67 752e 6564 752e  .ppp.gu.edu.
 | |
| 
 | |
|        Display just the date from the file xxd.1
 | |
|        % xxd -s 0x28 -l 12 -c 12 xxd.1
 | |
|        0000028: 3231 7374 204d 6179 2031 3939  21st May 199
 | |
| 
 | |
|        Copy  input_file  to  output_file and prepend 100 bytes of
 | |
|        value 0x00.
 | |
|        % xxd input_file | xxd -r -s 100 > output_file
 | |
| 
 | |
|        Patch the date in the file xxd.1
 | |
|        % echo '0000029: 3574 68' | xxd -r - xxd.1
 | |
|        % xxd -s 0x28 -l 12 -c 12 xxd.1
 | |
|        0000028: 3235 7468 204d 6179 2031 3939  25th May 199
 | |
| 
 | |
|        Create a 65537 byte file with all bytes 0x00,  except  for
 | |
|        the last one which is 'A' (hex 0x41).
 | |
|        % echo '010000: 41' | xxd -r > file
 | |
| 
 | |
|        Hexdump this file with autoskip.
 | |
|        % xxd -a -c 12 file
 | |
|        0000000: 0000 0000 0000 0000 0000 0000  ............
 | |
|        *
 | |
|        000fffc: 0000 0000 40                   ....A
 | |
| 
 | |
|        Create  a  1  byte file containing a single 'A' character.
 | |
|        The number after '-r -s' adds to the linenumbers found  in
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          4
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
|        the file; in effect, the leading bytes are suppressed.
 | |
|        % echo '010000: 41' | xxd -r -s -0x10000 > file
 | |
| 
 | |
|        Use  xxd  as  a  filter within an editor such as vim(1) to
 | |
|        hexdump a region marked between `a' and `z'.
 | |
|        :'a,'z!xxd
 | |
| 
 | |
|        Use xxd as a filter within an editor  such  as  vim(1)  to
 | |
|        recover a binary hexdump marked between `a' and `z'.
 | |
|        :'a,'z!xxd -r
 | |
| 
 | |
|        Use  xxd  as  a  filter within an editor such as vim(1) to
 | |
|        recover one line of a hexdump.  Move the cursor  over  the
 | |
|        line and type:
 | |
|        !!xxd -r
 | |
| 
 | |
|        Read single characters from a serial line
 | |
|        % xxd -c1 < /dev/term/b &
 | |
|        % stty < /dev/term/b -echo -opost -isig -icanon min 1
 | |
|        % echo -n foo > /dev/term/b
 | |
| 
 | |
| 
 | |
| RETURN VALUES
 | |
|        The following error values are returned:
 | |
| 
 | |
|        0      no errors encountered.
 | |
| 
 | |
|        -1     operation  not supported ( xxd -r -i still impossi-
 | |
|               ble).
 | |
| 
 | |
|        1      error while parsing options.
 | |
| 
 | |
|        2      problems with input file.
 | |
| 
 | |
|        3      problems with output file.
 | |
| 
 | |
|        4,5    desired seek position is unreachable.
 | |
| 
 | |
| SEE ALSO
 | |
|        uuencode(1), uudecode(1), patch(1)
 | |
| 
 | |
| WARNINGS
 | |
|        The tools  weirdness  matches  its  creators  brain.   Use
 | |
|        entirely  at your own risk. Copy files. Trace it. Become a
 | |
|        wizard.
 | |
| 
 | |
| VERSION
 | |
|        This manual page documents xxd version 1.7
 | |
| 
 | |
| AUTHOR
 | |
|        (c) 1990-1997 by Juergen Weigert
 | |
|        <jnweiger@informatik.uni-erlangen.de>
 | |
| 
 | |
|        Distribute freely and credit me,
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          5
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| XXD(1)                                                     XXD(1)
 | |
| 
 | |
| 
 | |
|        make money and share with me,
 | |
|        lose money and don't ask me.
 | |
| 
 | |
|        Manual page started by Tony Nugent
 | |
|        <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
 | |
|        Small  changes  by  Bram  Moolenaar.   Edited  by  Juergen
 | |
|        Weigert.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Manual page for xxd        August 1996                          6
 | |
| 
 | |
| 
 |