Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DWDIFF(1)		  Delimited word diff program		     DWDIFF(1)

NAME
       dwdiff -	a delimited word diff program

SYNOPSIS
       dwdiff [OPTIONS]	OLD FILE NEW FILE
       dwdiff [OPTIONS]	--diff-input [DIFF FILE]

DESCRIPTION
       dwdiff is a 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.  De-
       limiters	 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 sup-
       ported.

       The  default  output  from dwdiff is the	new text, with the deleted and
       inserted	parts annotated	with markers. Command line options are	avail-
       able 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. The de-
	      fault is empty.

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

       -W whitespace, --white-space=whitespace
	      Specify  a  list of characters to	be used	as whitespace. The de-
	      fault set	of whitespace characters depends on  the  current  lo-
	      cale.

       -u, --diff-input
	      Interpret	 the input as the output from diff in the Unified Diff
	      format (usually produced by diff -u). In this case only one  in-
	      put  file	is allowed. This option	allows reformating diff	output
	      with dwdiff, and is useful for example to	post-process the  out-
	      put of svn diff.

       -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  num-
	      ber in the new file respectively.	The optional width argument is
	      the minimum number of positions per line number.

       -Cnum, --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 num-
	      ber 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  in-
	      stead  of	the canonical decomposition.  The compatibility	decom-
	      position discards	formatting information.	For example, the liga-
	      ture  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.

       -c[spec], --color[=spec]
	      Color mode. The optional spec can	be used	to customize the  col-
	      ors.  spec consists of [delete],[insert].	If either is omited it
	      will be set to its default color (bright red or bright green re-
	      spectively).   Both   parts   of	the  spec  consist  of	[fore-
	      ground][:background]. To obtain  a  list	of  permissible	 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 in-
	      serted 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 un-
	      derlined and bold	text.

	      The standard markers for the begin and end of  deleted  and  in-
	      serted  text  are	 suppressed,  but any markers specified	on the
	      command line will	still be printed.

       -mnum, --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 out-
	      put  for	dwdiff	for  large  changes  with frequently occurring
	      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 re-
	      duces the	processing time	as the changes reported	 by  the  diff
	      program are not post-processed to	give more precise results.

       -A algorithm, --algorithm=algorithm
	      Select  the  algorithm  to  be used for determining differences.
	      There are	three possible values for algorithm: best, which tries
	      to  find	the  minimal set of changes, normal, which trades some
	      optimality for speed, and	fast, which assumes that the input  is
	      large  and contains few changes. By default the normal algorithm
	      is used.

       -S[marker], --paragraph-separator[=marker]
	      Show insertion or	deletion of blocks of lines with  only	white-
	      space  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  dif-
	      ferent output algorithm, which provides a	more intuitive output.

       -w string, --start-delete=string
	      Specify  a  string to mark begin of deleted text.	The default is
	      [-.

       -x string, --stop-delete=string
	      Specify a	string to mark end of deleted text. The	default	is -].

       -y string, --start-insert=string
	      Specify a	string to mark begin of	inserted text. The default  is
	      {+.

       -z string, --stop-insert=string
	      Specify  a  string  to mark end of inserted text.	The default is
	      +}.

       -R, --repeat-markers
	      Repeat the begin and end markers at the start and	end of line if
	      a	change crosses a newline.

       --profile=name
	      Load  the	 profile with name name	from the .dwdiffrc file	in the
	      user's home directory. Only the last profile named  is  actually
	      read, unless it is followed by a --no-profile option. By default
	      the profile named	default	is read.

       --no-profile
	      Disable reading of profiles, unless followed by  another	--pro-
	      file option.  This also disables reading the default profile.

       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	inter-
       preting file names that start with a dash as options, one can specify a
       double dash (--)	after which dwdiff will	interpret any following	 argu-
       ments as	files to read.

       The  exit status	of dwdiff indicates the	result of the comparison: 0 if
       the files are the same, 1 if the	files are different. Should  an	 error
       occur, dwdiff will exit with status 2.

PROFILES
       Since  version 2.1.0, dwdiff allows users to create profiles. A profile
       is a set	of options that	can be loaded using the	--profile option. Pro-
       files  are specified in the .dwdiffrc in	the user's home	directory. The
       format of the .dwdiffrc file is as follows:

       A line contains either a	profile	header (a text enclosed	in  [])	 or  a
       long  option  name  without leading dashes, optionally followed by it's
       argument. Arguments are stripped	of whitespace surrounding  it.	If  an
       argument	 starts	 and ends with matching	double or single quotes, these
       are removed as well. Comments can be included by	starting a line	with a
       hash mark (#).

       If  no  profile is specified, the profile named default will be loaded,
       unless the --no-profile option is specified. Here is an	example	 .dwd-
       iffrc:

	    [default]
	    color red,blue
	    punctuation

	    [html]
	    start-delete <span style="color=red">
	    stop-delete	</span>
	    start-insert <span style="color=green">
	    stop-insert	</span>

	    [space-only]
	    # Use only a space as whitespace.
	    white-space	" "

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.html>.  When  re-
       porting	bugs,  please  include a minimal example that demonstrates the
       problem.

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

COPYRIGHT
       Copyright (C) 2006-2017 G.P. Halkes and others
       dwdiff is licensed under	the GNU	General	Public License version 3.
       For more	details	on the license,	see the	file COPYING in	the documenta-
       tion	directory.     On     Un*x    systems	 this	 is    usually
       /usr/share/doc/dwdiff-$VERSION$.

SEE ALSO
       dwfilter(1), wdiff(1), diff(1)

$VERSION$			  2018/12/03			     DWDIFF(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | PROFILES | BUGS | AUTHOR | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=dwdiff&sektion=1&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help