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	 back-
	      space,  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)

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

home | help