dwdiff(1)

NAME
dwdiff - a delimited word diff program

SYNOPSIS
dwdiff [OPTIONS] <OLD FILE> <NEW FILE>

DESCRIPTION
dwdiff is a front-end for the diff program that operates at the word level instead of the line level. It is different from wdiff in that it allows the user to specify what should be considered whitespace, and in that it takes an optional list of characters that should be considered delimiters. Delimiters are single characters that are treated as if they are words, even when there is no whitespace separating them from preceding words or delimiters. dwdiff is mostly command-line compatible with wdiff. Only the --autopager, --terminal and --avoid-wraps options are not supported. The default output from dwdiff is the new text, with the deleted and inserted parts annotated with markers. Command line options are available to change both what is printed, and the markers.

OPTIONS
dwdiff accepts the following options (Note that all strings will first be escape expanded. All standard \-escapes are supported, as well as \u and \U Unicode escapes):

-h, --help
    Display a short help message.

-v, --version
    Print version and copyright information.

-d <delimiters>, --delimiters=<delimiters>
    Specify a list of characters to be used as delimiters.

-P, --punctuation>
    Use punctuation characters as delimiters. The exact set of punctuation characters depends on the current locale.

-W <whitespace>, --whitespace=<whitespace>
    Specify a list of characters to be used as whitespace.

-1, --no-deleted
    Suppress printing of words deleted from the first file.

-2, --no-inserted
    Suppress printing of words inserted in the second file.

-3, --no-common
    Suppress printing of words common to both files.

-L[<width>], --line-numbers[=<width>]
    Show line numbers at the start of each line. The line numbers displayed are the line number in the old file and the line number in the new file respectively. The optional <width> argument is the minimum number of positions per line number.

-C<num>, --context=<num>
    Show <num> lines of context before and after each changes. A line with only -- is printed between blocks of changes.

-s, --statistics
    Print statistics when done. The numbers printed include the number of words from in both files, the number of deleted words, the number of inserted words, and the number of changed words. The number of changed words is counted as the number of words that are removed from the first file, and the number of words that replace them from the second file. All of these numbers are also expressed as a percentage of the total number of words in the file the words came from.

-i, --ignore-case
    Ignore differences in case when comparing words. This option is only available if the diff program that is called provides it.

-I, --ignore-formatting
    Ignore differences in formatting of characters. This option switches to using the Unicode compatibility decomposition instead of the canonical decomposition. The compatibility decomposition discards formatting information. For example, the ligature fi will be decomposed into two separate characters for the purposes of comparison. However, also super- and subscript will be regarded equal as well as different rotations of the same character.

-D <option>, --diff-option=<option>
    Add an option to the command line of the diff(1) command. This option can be used to tell the diff command that it should change its matching algorithm. WARNING: make sure that the options passed do not change the output of the diff program, or dwdiff will fail. The GNU and most BSD versions of diff accept the -d or --minimal option to make diff find a minimal diff at extra cost. See the diff manual page for more information.

-c[<spec>], --color[=<spec>]
    Color mode. The optional <spec> can be used to customize the colors. <spec> consists of [<delete>],[<insert>]. If either is ommited it will be set to its default color (bright red or bright green respectively). Both parts of the <spec> consist of [<foreground>][:<background>]. To obtain a list of permissable color names, use the word ``list'' as <spec>. Alternatively, you can specify any escape sequence to set attributes as a color by prepending e:. The standard markers for the begin and end of deleted and inserted text are suppressed, but any markers specified on the command line will still be printed.

-l, --less-mode
    As -p but also overstrike deleted whitespace.

-p, --printer
    Use overstriking with an underscore and bold text to emphasize changes. This is implemented by first printing the underscore or a duplicate of the character to be printed, followed by a backspace, followed by the character. On regular terminals you won't see any effect. The less(1) command will however show underlined and bold text. The standard markers for the begin and end of deleted and inserted text are suppressed, but any markers specified on the command line will still be printed.

-m<num>, --match-context=<num>
    Use <num> words of context before and after words for matching. Words in the old text will then only match words in the new text if words surrounding them are also equal. This improves the output for dwdiff for large changes with frequently occuring words. However, using context requires more disk space and more processing time. The default value is 1. Set this option to 0 to revert to the pre 1.5 behavior.

--aggregate-changes
    Allow multiple close changes to be treated as one change, if context words are used (see --match-context). This option reduces the processing time as the changes reported by the diff program are not post-processed to give more precise results.

-S[<marker>], --paragraph-separator[=<marker>]
    Show insertion or deletion of blocks of lines with only whitespace characters. A special marker is inserted into the output to indicate these blocks. The default marker is <-->.

--wdiff-output
    Create wdiff compatible output. The dwdiff program uses a different output algorithm, which provides a more intuitive output.

-w <string>, --start-delete=<string>
    Specify a string to mark begin of deleted text.

-x <string>, --stop-delete=<string>
    Specify a string to mark end of deleted text.

-y <string>, --start-insert=<string>
    Specify a string to mark begin of inserted text.

-z <string>, --stop-insert=<string>
    Specify a string to mark end of inserted text.

A single dash (-) as a file can be used to denote standard input. Only one file can be read from standard input. To stop dwdiff from interpreting file names that start with a dash as options, one can specify a double dash (--) after which dwdiff will interpret any following arguments as files to read.

BUGS
If you think you have found a bug, please check that you are using the latest version of dwdiff [http://os.ghalkes.nl/dwdiff]. When reporting bugs, please include a minimal example that demonstrates the problem.

AUTHOR
G.P. Halkes <dwdiff@ghalkes.nl>

COPYRIGHT
Copyright © 2006-2009 G.P. Halkes
dwdiff is licensed under the GNU General Public License version 3.
For more details on the license, see the file COPYING in the documentation directory. On Un*x systems this is usually /usr/share/doc/dwdiff-1.6.1.

SEE ALSO
wdiff(1), diff(1)