dwdiff - a delimited word diff program
dwdiff [OPTIONS] <OLD FILE> <NEW FILE>
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.
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):
Display a short help message.
Print version and copyright information.
-d <delimiters>, --delimiters=<delimiters>
Specify a list of characters to be used as delimiters.
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.
Suppress printing of words deleted from the first file.
Suppress printing of words inserted in the second file.
Suppress printing of words common to both files.
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.
Show <num> lines of context before and after each changes. A
line with only -- is printed between blocks of changes.
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.
Ignore differences in case when comparing words. This option is
only available if the diff program that is called provides it.
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
-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.
Color mode. The optional <spec> can be used to customise the
colors. <spec> consists of [<delete>],[<insert>]. If either is
omitted it will be set to its default color (bright red or
bright green respectively). To obtain a list of permissible
color names, use the word ‘‘list’’ as <spec>. The default
markers will not be printed in color mode.
As -p but also overstrike deleted whitespace.
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.
-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.
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.
G.P. Halkes <email@example.com>
Copyright © 2006-2008 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