diff options
Diffstat (limited to '')
-rw-r--r-- | doc/zutils.texinfo | 480 |
1 files changed, 390 insertions, 90 deletions
diff --git a/doc/zutils.texinfo b/doc/zutils.texinfo index 5442249..bb6eb6c 100644 --- a/doc/zutils.texinfo +++ b/doc/zutils.texinfo @@ -5,8 +5,8 @@ @finalout @c %**end of header -@set UPDATED 1 December 2009 -@set VERSION 0.8-rc1 +@set UPDATED 15 November 2010 +@set VERSION 0.8 @dircategory Data Compression @direntry @@ -24,7 +24,9 @@ @vskip 0pt plus 1filll @end titlepage +@ifnothtml @contents +@end ifnothtml @node Top @top @@ -32,17 +34,18 @@ This manual is for Zutils (version @value{VERSION}, @value{UPDATED}). @menu -* Introduction:: Purpose and features of zutils -* Zcat:: Concatenating compressed files -* Zcmp/Zdiff:: Comparing compressed files -* Zgrep:: Searching inside compressed files -* Ztest:: Testing integrity of compressed files -* Problems:: Reporting bugs -* Concept Index:: Index of concepts +* Introduction:: Purpose and features of zutils +* Zcat:: Concatenating compressed files +* Zcmp:: Comparing compressed files byte by byte +* Zdiff:: Comparing compressed files line by line +* Zgrep:: Searching inside compressed files +* Ztest:: Testing integrity of compressed files +* Problems:: Reporting bugs +* Concept Index:: Index of concepts @end menu @sp 1 -Copyright @copyright{} 2008, 2009 Antonio Diaz Diaz. +Copyright @copyright{} 2008, 2009, 2010 Antonio Diaz Diaz. This manual is free documentation: you have unlimited permission to copy, distribute and modify it. @@ -52,148 +55,443 @@ to copy, distribute and modify it. @chapter Introduction @cindex introduction -Zutils is a collection of utilities for dealing with any combination of -compressed and non-compressed files transparently. The supported -compressors are bzip2, gzip, lzip and xz. +Zutils is a collection of utilities able to deal with any combination of +compressed and non-compressed files transparently. If any given file, +including standard input, is compressed, its uncompressed content is +used. Compressed files are decompressed on the fly; no temporary files +are created. These utilities are not wrapper scripts but safer and more +efficient C++ programs. In particular the @samp{--recursive} option is +very efficient in those utilities supporting it. -The currently provided utilities are zcat, zcmp, zdiff, zegrep, zfgrep, -zgrep and ztest. +@noindent +The provided utilities are zcat, zcmp, zdiff, zgrep and ztest.@* +The supported compressors are bzip2, gzip, lzip and xz. + +@sp 1 +Numbers given as arguments to options (positions, sizes) may be followed +by a multiplier and an optional @samp{B} for "byte". + +Table of SI and binary prefixes (unit multipliers): + +@multitable {Prefix} {kilobyte (10^3 = 1000)} {|} {Prefix} {kibibyte (2^10 = 1024)} +@item Prefix @tab Value @tab | @tab Prefix @tab Value +@item k @tab kilobyte (10^3 = 1000) @tab | @tab Ki @tab kibibyte (2^10 = 1024) +@item M @tab megabyte (10^6) @tab | @tab Mi @tab mebibyte (2^20) +@item G @tab gigabyte (10^9) @tab | @tab Gi @tab gibibyte (2^30) +@item T @tab terabyte (10^12) @tab | @tab Ti @tab tebibyte (2^40) +@item P @tab petabyte (10^15) @tab | @tab Pi @tab pebibyte (2^50) +@item E @tab exabyte (10^18) @tab | @tab Ei @tab exbibyte (2^60) +@item Z @tab zettabyte (10^21) @tab | @tab Zi @tab zebibyte (2^70) +@item Y @tab yottabyte (10^24) @tab | @tab Yi @tab yobibyte (2^80) +@end multitable @node Zcat @chapter Zcat @cindex zcat -Zcat is a wrapper script around the cat command that allows transparent -concatenation of any combination of compressed and non-compressed files. -If any given file is compressed, its uncompressed content is used. If a -given file does not exist, zcat tries the compressed file names +Zcat copies each given file (@samp{-} means standard input), to standard +output. If any given file is compressed, its uncompressed content is +used. If a given file does not exist, and its name does not end with one +of the known extensions, zcat tries the compressed file names corresponding to the supported compressors. If no files are specified, data is read from standard input, decompressed if needed, and sent to -stdout. Data read from standard input must be of the same type; all -uncompressed or all compressed with the same compressor. +standard output. Data read from standard input must be of the same type; +all uncompressed or all compressed with the same compressor. The format for running zcat is: @example -zcat [@var{options}] [@var{cat_options}] [@var{files}] +zcat [@var{options}] [@var{files}] @end example @noindent -@var{cat_options} are passed directly to cat. The exit status from cat -is preserved. +Exit status is 0 if no errors occurred, 1 otherwise. Zcat supports the following options: @table @samp -@item --help -@itemx -h +@item -h +@itemx --help Print an informative help message describing the options and exit. -@item --version -@itemx -V +@item -V +@itemx --version Print the version number of zcat on the standard output and exit. -@item --recursive -@itemx -r +@item -A +@itemx --show-all +Equivalent to @samp{-vET}. + +@item -b +@itemx --number-nonblank +Number all nonblank output lines, starting with 1. The line count is +unlimited. + +@item -e +Equivalent to @samp{-vE}. + +@item -E +@itemx --show-ends +Print a @samp{$} after the end of each line. + +@item -n +@itemx --number +Number all output lines, starting with 1. The line count is unlimited. + +@item -q +@itemx --quiet +Quiet operation. Suppress all messages. + +@item -r +@itemx --recursive Operate recursively on directories. +@item -s +@itemx --squeeze-blank +Replace multiple adjacent blank lines with a single blank line. + +@item -t +Equivalent to @samp{-vT}. + +@item -T +@itemx --show-tabs +Print TAB characters as @samp{^I}. + +@item -v +@itemx --show-nonprinting +Print control characters except for LF (newline) and TAB using @samp{^} +notation and precede characters larger than 127 with @samp{M-} (which +stands for "meta"). + +@item --verbose +Verbose mode. Show error messages. + @end table -@node Zcmp/Zdiff -@chapter Zcmp/Zdiff +@node Zcmp +@chapter Zcmp @cindex zcmp -@cindex zdiff -Zdiff is a wrapper script around the diff and cmp commands that allows -transparent comparison of any combination of compressed and -non-compressed files. If any given file is compressed, its uncompressed -content is used. +Zcmp compares two files (@samp{-} means standard input), and if they +differ, tells the first byte and line number where they differ. Bytes +and lines are numbered starting with 1. If any given file is compressed, +its uncompressed content is used. Compressed files are decompressed on +the fly; no temporary files are created. + +The format for running zcmp is: + +@example +zcmp [@var{options}] @var{file1} [@var{file2}] +@end example + +@noindent +Compares @var{file1} to @var{file2}. If @var{file2} is omitted zcmp +tries the following:@* +If @var{file1} is compressed, compares @var{file1} to the file with the +corresponding decompressed file name (removes the extension from +@var{file1}).@* +If @var{file1} is not compressed, compares @var{file1} to the +uncompressed contents of @var{file1}.[bz2|gz|lz|xz] (the first one that +is found).@* +If no suitable file is found, compares @var{file1} to data read from +standard input. @noindent -Zcmp is a shortcut for @samp{zdiff --cmp} +An exit status of 0 means no differences were found, 1 means some +differences were found, and 2 means trouble. + +Zcmp supports the following options: + +@table @samp +@item -h +@itemx --help +Print an informative help message describing the options and exit. + +@item -V +@itemx --version +Print the version number of zcmp on the standard output and exit. + +@item -b +@itemx --print-bytes +Print the differing bytes. Print control bytes as a @samp{^} followed by +a letter, and precede bytes larger than 127 with @samp{M-} (which stands +for "meta"). + +@item -i @var{size} +@itemx --ignore-initial=@var{size} +Ignore any differences in the first @var{size} bytes of the input files. +Treat files with fewer than @var{size} bytes as if they were empty. If +@var{size} is in the form @samp{@var{size1},@var{size2}}, ignore the +first @var{size1} bytes of the first input file and the first +@var{size2} bytes of the second input file. + +@item -l +@itemx -v +@itemx --list +@itemx --verbose +Print the byte numbers (in decimal) and values (in octal) of all +differing bytes. + +@item -n @var{count} +@itemx --bytes=@var{count} +Compare at most @var{count} input bytes. + +@item -q +@itemx -s +@itemx --quiet +@itemx --silent +Do not print anything; only return an exit status indicating whether the +files differ. + +@end table + + +@node Zdiff +@chapter Zdiff +@cindex zdiff + +Zdiff compares two files (@samp{-} means standard input), and if they +differ, shows the differences line by line. If any given file is +compressed, its uncompressed content is used. Zdiff is a front end to +the diff program and has the limitation that messages from diff refer to +temporary filenames instead of those specified. The format for running zdiff is: @example -zdiff [@var{options}] [@var{diff_options}] @var{file1} [@var{file2}] +zdiff [@var{options}] @var{file1} [@var{file2}] @end example @noindent -Compares @var{file1} to @var{file2}. If @var{file2} is omitted and -@var{file1} is compressed, compares @var{file1} to the file with the +Compares @var{file1} to @var{file2}. If @var{file2} is omitted zdiff +tries the following:@* +If @var{file1} is compressed, compares @var{file1} to the file with the corresponding decompressed file name (removes the extension from -@var{file1}). If @var{file2} is omitted and @var{file1} is not -compressed, compares @var{file1} to the uncompressed contents of -@var{file1}.[bz2|gz|lz|xz] (the first one that is found). -@var{diff_options} are passed directly to diff or cmp. The exit status -from diff or cmp is preserved. +@var{file1}).@* +If @var{file1} is not compressed, compares @var{file1} to the +uncompressed contents of @var{file1}.[bz2|gz|lz|xz] (the first one that +is found).@* +If no suitable file is found, compares @var{file1} to data read from +standard input. + +@noindent +An exit status of 0 means no differences were found, 1 means some +differences were found, and 2 means trouble. Zdiff supports the following options: @table @samp -@item --help -@itemx -h +@item -h +@itemx --help Print an informative help message describing the options and exit. -@item --version -@itemx -V +@item -V +@itemx --version Print the version number of zdiff on the standard output and exit. -@item --diff -Use diff to compare files (default). +@item -a +@itemx --text +Treat all files as text. -@item --cmp -Use cmp to compare files. +@item -b +@itemx --ignore-space-change +Ignore changes in the amount of white space. -@end table +@item -B +@itemx --ignore-blank-lines +Ignore changes whose lines are all blank. + +@itemx -c +Use the context output format. + +@item -C @var{n} +@itemx --context=@var{n} +Same as -c but use @var{n} lines of context. + +@item -d +@itemx --minimal +Try hard to find a smaller set of changes. -Zdiff has the limitation that messages from the diff or cmp programs -refer to temporary filenames instead of those specified. +@item -E +@itemx --ignore-tab-expansion +Ignore changes due to tab expansion. + +@item -i +@itemx --ignore-case +Ignore case differences in file contents. + +@item -p +@itemx --show-c-function +Show which C function each change is in. + +@item -q +@itemx --brief +Output only whether files differ. + +@item -s +@itemx --report-identical-files +Report when two files are identical. + +@item -t +@itemx --expand-tabs +Expand tabs to spaces in output. + +@item -T +@itemx --initial-tab +Make tabs line up by prepending a tab. + +@item -u +Use the unified output format. + +@item -U @var{n} +@itemx --unified=@var{n} +Same as -u but use @var{n} lines of context. + +@item -w +@itemx --ignore-all-space +Ignore all white space. + +@end table @node Zgrep @chapter Zgrep -@cindex zegrep -@cindex zfgrep @cindex zgrep -Zgrep is a wrapper script around the grep command that allows -transparent search on any combination of compressed and non-compressed -files. If any given file is compressed, its uncompressed content is -used. If a given file does not exist, zgrep tries the compressed file -names corresponding to the supported compressors. If no files are -specified, data is read from standard input, decompressed if needed, and -fed to grep. Data read from standard input must be of the same type; all -uncompressed or all compressed with the same compressor. - -@noindent -Zegrep is a shortcut for @samp{zgrep -E}@* -Zfgrep is a shortcut for @samp{zgrep -F} - +Zgrep is a front end to the grep program that allows transparent search +on any combination of compressed and non-compressed files. If any given +file is compressed, its uncompressed content is used. If a given file +does not exist, and its name does not end with one of the known +extensions, zgrep tries the compressed file names corresponding to the +supported compressors. If no files are specified, data is read from +standard input, decompressed if needed, and fed to grep. Data read from +standard input must be of the same type; all uncompressed or all +compressed with the same compressor. The format for running zgrep is: @example -zgrep [@var{options}] [@var{grep_options}] @var{pattern} [@var{files}] +zgrep [@var{options}] @var{pattern} [@var{files}] @end example @noindent -@var{grep_options} are passed directly to grep. The exit status from -grep is preserved. +An exit status of 0 means at least one match was found, 1 means no +matches were found, and 2 means trouble. Zgrep supports the following options: @table @samp @item --help -@itemx -h Print an informative help message describing the options and exit. -@item --version -@itemx -V +@item -V +@itemx --version Print the version number of zgrep on the standard output and exit. +@item -a +@itemx --text +Treat all files as text. + +@item -A @var{n} +@itemx --after-context=@var{n} +Print @var{n} lines of trailing context. + +@item -b +@itemx --byte-offset +Print the byte offset of each line. + +@item -B @var{n} +@itemx --before-context=@var{n} +Print @var{n} lines of leading context. + +@item -c +@itemx --count +Only print a count of matching lines per file. + +@item -C @var{n} +@itemx --context=@var{n} +Print @var{n} lines of output context. + +@item -e @var{pattern} +@itemx --regexp=@var{pattern} +Use @var{pattern} as the pattern to match. + +@item -E +@itemx --extended-regexp +Treat @var{pattern} as an extended regular expression. + +@item -f @var{file} +@itemx --file=@var{file} +Obtain patterns from @var{file}, one per line. + +@item -F +@itemx --fixed-strings +Treat @var{pattern} as a set of newline-separated strings. + +@item -h +@itemx --no-filename +Suppress the prefixing filename on output. + +@item -H +@itemx --with-filename +Print the filename for each match. + +@item -i +@itemx --ignore-case +Ignore case distinctions. + +@item -I +Ignore binary files. + +@item -l +@itemx --files-with-matches +Only print names of files containing at least one match. + +@item -L +@itemx --files-without-match +Only print names of files not containing any matches. + +@item -m @var{n} +@itemx --max-count=@var{n} +Stop after @var{n} matches. + +@item -n +@itemx --line-number +Prefix each matched line with its line number in the input file. + +@item -o +@itemx --only-matching +Show only the part of matching lines that actually matches @var{pattern}. + +@item -q +@itemx --quiet +Suppress all messages. + +@item -r +@itemx --recursive +Operate recursively on directories. + +@item -s +@itemx --no-messages +Suppress error messages. + +@item -v +@itemx --invert-match +Select non-matching lines. + +@item --verbose +Verbose mode. Show error messages. + +@item -w +@itemx --word-regexp +Match only whole words. + +@item -x +@itemx --line-regexp +Match only whole lines. + @end table @@ -213,29 +511,31 @@ ztest [@var{options}] [@var{files}] @end example @noindent -The exit status is 0 if all files verify OK, 1 otherwise. +The exit status is 0 if all files verify OK, 1 for environmental +problems (file not found, invalid flags, I/O errors, etc), 2 to indicate +a corrupt or invalid input file. Ztest supports the following options: @table @samp -@item --help -@itemx -h +@item -h +@itemx --help Print an informative help message describing the options and exit. -@item --version -@itemx -V +@item -V +@itemx --version Print the version number of ztest on the standard output and exit. -@item --quiet -@itemx -q +@item -q +@itemx --quiet Quiet operation. Suppress all messages. -@item --recursive -@itemx -r +@item -r +@itemx --recursive Operate recursively on directories. -@item --verbose -@itemx -v +@item -v +@itemx --verbose Verbose mode. Show the verify status for each file processed. Further -v's increase the verbosity level. @@ -254,7 +554,7 @@ for all eternity, if not longer. If you find a bug in zutils, please send electronic mail to @email{zutils-bug@@nongnu.org}. Include the version number, which you can -find by running @w{@samp{zdiff --version}}. +find by running @w{@samp{zutils --version}}. @node Concept Index |