diff options
Diffstat (limited to 'runtime/doc/xxd.man')
-rw-r--r-- | runtime/doc/xxd.man | 393 |
1 files changed, 130 insertions, 263 deletions
diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man index 37b22d6d9..00d75da41 100644 --- a/runtime/doc/xxd.man +++ b/runtime/doc/xxd.man @@ -1,9 +1,7 @@ +XXD(1) XXD(1) -XXD(1) XXD(1) - - NAME xxd - make a hexdump or do the reverse. @@ -13,239 +11,184 @@ SYNOPSIS 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. + 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 representation, but has the advantage of decoding to stan- + dard 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. + 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 `-' character 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. + 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. + 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. + 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 hexadecimal dump. Each line is preceded by a line number + in hexadecimal and followed by an ascii (or ebcdic) representa- + tion. 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. + 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) - + Change the character encoding in the righthand column from ASCII + to EBCDIC. This does not change the hexadecimal representation. + The option is meaningless in combinations with -r, -p or -i. -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 + separate the output of every <bytes> bytes (two hex characters + or eight bit-digits each) by a whitespace. Specify -g 0 to sup- + press 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. + 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. + output in C include file style. A complete static array defini- + tion 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. + 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. + reverse operation: convert (or patch) hexdump into binary. If + not writing to stdout, xxd writes into its output file without + truncating it. Use the combination -r -p to read plain hexadeci- + mal dumps without line number information and without a particu- + lar 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. + When used after -r : revert with <offset> added to file posi- + tions 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. + start at <seek> bytes abs. (or rel.) infile offset. + indicates + that the seek is relative to the current 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. + xxd -r has some builtin magic while evaluating line number information. + If the output file is seekable, then the linenumbers at the start of + each hexdump line may be out of order, lines may be missing, or over- + lapping. In these cases xxd will lseek(2) to the next position. If the + output 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 number of col- + umns. Here anything that looks like a pair of hex-digits is inter- + preted. 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!)... + xxd -s +seek may be different from xxd -s seek , as lseek(2) is used to + "rewind" input. A '+' makes a difference 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. + 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 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 + % 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. + 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) - - + Print everything but the first three lines (hex 0x30 bytes) of file % 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. + 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. + 2e54482058584420312022417567757374203139 + 39362220224d616e75616c207061676520666f72 + 20787864220a2e5c220a2e5c222032317374204d + 617920313939360a2e5c22204d616e2070616765 + 20617574686f723a0a2e5c2220202020546f6e79 + 204e7567656e74203c746f6e79407363746e7567 + + 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. + 0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A + 000000c: 7567 7573 7420 3139 3936 2220 ugust 1996" + 0000018: 224d 616e 7561 6c20 7061 6765 "Manual page + 0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\ + 0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21st M + 000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\" + 0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut + 0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\" + 0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent + 000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug 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 + % xxd -s 0x36 -l 13 -c 13 xxd.1 + 0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996 - Copy input_file to output_file and prepend 100 bytes of - value 0x00. + 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 + % echo '0000037: 3574 68' | xxd -r - xxd.1 + % xxd -s 0x36 -l 13 -c 13 xxd.1 + 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 - Create a 65537 byte file with all bytes 0x00, except for - the last one which is 'A' (hex 0x41). + 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. @@ -254,34 +197,21 @@ XXD(1) XXD(1) * 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. + Create a 1 byte file containing a single 'A' character. The number + after '-r -s' adds to the linenumbers found in 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'. + 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'. + 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: + 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 @@ -295,8 +225,7 @@ RETURN VALUES 0 no errors encountered. - -1 operation not supported ( xxd -r -i still impossi- - ble). + -1 operation not supported ( xxd -r -i still impossible). 1 error while parsing options. @@ -310,9 +239,8 @@ 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. + 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 @@ -322,75 +250,14 @@ AUTHOR <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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Small changes by Bram Moolenaar. Edited by Juergen Weigert. -Manual page for xxd August 1996 6 +Manual page for xxd August 1996 XXD(1) |