xref: /freebsd-14.2/usr.bin/diff/diff.1 (revision 45fc3733)
13bbe3f67SBaptiste Daroussin.\" $OpenBSD: diff.1,v 1.47 2015/11/24 19:35:41 jmc Exp $
23bbe3f67SBaptiste Daroussin.\"
33bbe3f67SBaptiste Daroussin.\" Copyright (c) 1980, 1990, 1993
43bbe3f67SBaptiste Daroussin.\"	The Regents of the University of California.  All rights reserved.
53bbe3f67SBaptiste Daroussin.\"
63bbe3f67SBaptiste Daroussin.\" Redistribution and use in source and binary forms, with or without
73bbe3f67SBaptiste Daroussin.\" modification, are permitted provided that the following conditions
83bbe3f67SBaptiste Daroussin.\" are met:
93bbe3f67SBaptiste Daroussin.\" 1. Redistributions of source code must retain the above copyright
103bbe3f67SBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer.
113bbe3f67SBaptiste Daroussin.\" 2. Redistributions in binary form must reproduce the above copyright
123bbe3f67SBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer in the
133bbe3f67SBaptiste Daroussin.\"    documentation and/or other materials provided with the distribution.
143bbe3f67SBaptiste Daroussin.\" 3. Neither the name of the University nor the names of its contributors
153bbe3f67SBaptiste Daroussin.\"    may be used to endorse or promote products derived from this software
163bbe3f67SBaptiste Daroussin.\"    without specific prior written permission.
173bbe3f67SBaptiste Daroussin.\"
183bbe3f67SBaptiste Daroussin.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
193bbe3f67SBaptiste Daroussin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
203bbe3f67SBaptiste Daroussin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
213bbe3f67SBaptiste Daroussin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
223bbe3f67SBaptiste Daroussin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
233bbe3f67SBaptiste Daroussin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
243bbe3f67SBaptiste Daroussin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
253bbe3f67SBaptiste Daroussin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
263bbe3f67SBaptiste Daroussin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
273bbe3f67SBaptiste Daroussin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
283bbe3f67SBaptiste Daroussin.\" SUCH DAMAGE.
293bbe3f67SBaptiste Daroussin.\"
303bbe3f67SBaptiste Daroussin.\"     @(#)diff.1	8.1 (Berkeley) 6/30/93
313bbe3f67SBaptiste Daroussin.\"
32*45fc3733SDag-Erling Smørgrav.Dd July 26, 2024
333bbe3f67SBaptiste Daroussin.Dt DIFF 1
343bbe3f67SBaptiste Daroussin.Os
353bbe3f67SBaptiste Daroussin.Sh NAME
363bbe3f67SBaptiste Daroussin.Nm diff
373bbe3f67SBaptiste Daroussin.Nd differential file and directory comparator
383bbe3f67SBaptiste Daroussin.Sh SYNOPSIS
393bbe3f67SBaptiste Daroussin.Nm diff
40e68edb8cSKyle Evans.Op Fl aBbdipTtw
413bbe3f67SBaptiste Daroussin.Oo
423bbe3f67SBaptiste Daroussin.Fl c | e | f |
4364793e74SBaptiste Daroussin.Fl n | q | u | y
443bbe3f67SBaptiste Daroussin.Oc
457dacb9e7SEnji Cooper.Op Fl -brief
46f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
47fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
487dacb9e7SEnji Cooper.Op Fl -ed
497dacb9e7SEnji Cooper.Op Fl -expand-tabs
507dacb9e7SEnji Cooper.Op Fl -forward-ed
517dacb9e7SEnji Cooper.Op Fl -ignore-all-space
523bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
537dacb9e7SEnji Cooper.Op Fl -ignore-space-change
547dacb9e7SEnji Cooper.Op Fl -initial-tab
557dacb9e7SEnji Cooper.Op Fl -minimal
5616a75375SDag-Erling Smørgrav.Op Fl -no-dereference
5778b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
583bbe3f67SBaptiste Daroussin.Op Fl -normal
597dacb9e7SEnji Cooper.Op Fl -rcs
607dacb9e7SEnji Cooper.Op Fl -show-c-function
617dacb9e7SEnji Cooper.Op Fl -starting-file
62a077708dSBaptiste Daroussin.Op Fl -speed-large-files
633bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
6443fbd654SKyle Evans.Op Fl -tabsize Ar number
657dacb9e7SEnji Cooper.Op Fl -text
667dacb9e7SEnji Cooper.Op Fl -unified
677dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
68e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern
697dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
703bbe3f67SBaptiste Daroussin.Ar file1 file2
713bbe3f67SBaptiste Daroussin.Nm diff
72e68edb8cSKyle Evans.Op Fl aBbdilpTtw
737dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
74e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern
757dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
767dacb9e7SEnji Cooper.Op Fl -brief
77f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
78fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
797dacb9e7SEnji Cooper.Op Fl -ed
807dacb9e7SEnji Cooper.Op Fl -expand-tabs
817dacb9e7SEnji Cooper.Op Fl -forward-ed
827dacb9e7SEnji Cooper.Op Fl -ignore-all-space
833bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
847dacb9e7SEnji Cooper.Op Fl -ignore-space-change
857dacb9e7SEnji Cooper.Op Fl -initial-tab
867dacb9e7SEnji Cooper.Op Fl -minimal
8716a75375SDag-Erling Smørgrav.Op Fl -no-dereference
8878b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
893bbe3f67SBaptiste Daroussin.Op Fl -normal
907dacb9e7SEnji Cooper.Op Fl -paginate
917dacb9e7SEnji Cooper.Op Fl -rcs
927dacb9e7SEnji Cooper.Op Fl -show-c-function
93a077708dSBaptiste Daroussin.Op Fl -speed-large-files
947dacb9e7SEnji Cooper.Op Fl -starting-file
953bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
9643fbd654SKyle Evans.Op Fl -tabsize Ar number
977dacb9e7SEnji Cooper.Op Fl -text
987dacb9e7SEnji Cooper.Fl C Ar number | -context Ar number
993bbe3f67SBaptiste Daroussin.Ar file1 file2
1003bbe3f67SBaptiste Daroussin.Nm diff
101e68edb8cSKyle Evans.Op Fl aBbdiltw
1027dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
1037dacb9e7SEnji Cooper.Op Fl -brief
104f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
105fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1067dacb9e7SEnji Cooper.Op Fl -ed
1077dacb9e7SEnji Cooper.Op Fl -expand-tabs
1087dacb9e7SEnji Cooper.Op Fl -forward-ed
1097dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1103bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1117dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1127dacb9e7SEnji Cooper.Op Fl -initial-tab
1137dacb9e7SEnji Cooper.Op Fl -minimal
11416a75375SDag-Erling Smørgrav.Op Fl -no-dereference
11578b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1163bbe3f67SBaptiste Daroussin.Op Fl -normal
1177dacb9e7SEnji Cooper.Op Fl -paginate
1187dacb9e7SEnji Cooper.Op Fl -rcs
1197dacb9e7SEnji Cooper.Op Fl -show-c-function
120a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1217dacb9e7SEnji Cooper.Op Fl -starting-file
1223bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
12343fbd654SKyle Evans.Op Fl -tabsize Ar number
1247dacb9e7SEnji Cooper.Op Fl -text
1257dacb9e7SEnji Cooper.Fl D Ar string | Fl -ifdef Ar string
1263bbe3f67SBaptiste Daroussin.Ar file1 file2
1273bbe3f67SBaptiste Daroussin.Nm diff
128e68edb8cSKyle Evans.Op Fl aBbdilpTtw
1297dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
130e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern
1317dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
1327dacb9e7SEnji Cooper.Op Fl -brief
133f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
134fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1357dacb9e7SEnji Cooper.Op Fl -ed
1367dacb9e7SEnji Cooper.Op Fl -expand-tabs
1377dacb9e7SEnji Cooper.Op Fl -forward-ed
1387dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1393bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1407dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1417dacb9e7SEnji Cooper.Op Fl -initial-tab
1427dacb9e7SEnji Cooper.Op Fl -minimal
14316a75375SDag-Erling Smørgrav.Op Fl -no-dereference
14478b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1453bbe3f67SBaptiste Daroussin.Op Fl -normal
1467dacb9e7SEnji Cooper.Op Fl -paginate
1477dacb9e7SEnji Cooper.Op Fl -rcs
1487dacb9e7SEnji Cooper.Op Fl -show-c-function
149a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1507dacb9e7SEnji Cooper.Op Fl -starting-file
1513bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
15243fbd654SKyle Evans.Op Fl -tabsize Ar number
1537dacb9e7SEnji Cooper.Op Fl -text
1547dacb9e7SEnji Cooper.Fl U Ar number | Fl -unified Ar number
1553bbe3f67SBaptiste Daroussin.Ar file1 file2
1563bbe3f67SBaptiste Daroussin.Nm diff
157e68edb8cSKyle Evans.Op Fl aBbdilNPprsTtw
1583bbe3f67SBaptiste Daroussin.Oo
1593bbe3f67SBaptiste Daroussin.Fl c | e | f |
1603bbe3f67SBaptiste Daroussin.Fl n | q | u
1613bbe3f67SBaptiste Daroussin.Oc
1627dacb9e7SEnji Cooper.Op Fl -brief
163f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
164fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1657dacb9e7SEnji Cooper.Op Fl -context
1667dacb9e7SEnji Cooper.Op Fl -ed
1677dacb9e7SEnji Cooper.Op Fl -expand-tabs
1687dacb9e7SEnji Cooper.Op Fl -forward-ed
1697dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1703bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1717dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1727dacb9e7SEnji Cooper.Op Fl -initial-tab
1737dacb9e7SEnji Cooper.Op Fl -minimal
1747dacb9e7SEnji Cooper.Op Fl -new-file
17516a75375SDag-Erling Smørgrav.Op Fl -no-dereference
17678b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1773bbe3f67SBaptiste Daroussin.Op Fl -normal
1787dacb9e7SEnji Cooper.Op Fl -paginate
1797dacb9e7SEnji Cooper.Op Fl -rcs
1807dacb9e7SEnji Cooper.Op Fl -recursive
1817dacb9e7SEnji Cooper.Op Fl -report-identical-files
1827dacb9e7SEnji Cooper.Op Fl -show-c-function
183a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1849ba27624SEnji Cooper.Op Fl -strip-trailing-cr
18543fbd654SKyle Evans.Op Fl -tabsize Ar number
1867dacb9e7SEnji Cooper.Op Fl -text
1877dacb9e7SEnji Cooper.Op Fl -unidirectional-new-file
1887dacb9e7SEnji Cooper.Op Fl -unified
1897dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
190e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern
1913bbe3f67SBaptiste Daroussin.Bk -words
1927dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
1937dacb9e7SEnji Cooper.Op Fl S Ar name | Fl -starting-file Ar name
1947dacb9e7SEnji Cooper.Op Fl X Ar file | Fl -exclude-from Ar file
1957dacb9e7SEnji Cooper.Op Fl x Ar pattern | Fl -exclude Ar pattern
1963bbe3f67SBaptiste Daroussin.Ek
1973bbe3f67SBaptiste Daroussin.Ar dir1 dir2
19864793e74SBaptiste Daroussin.Nm diff
19964793e74SBaptiste Daroussin.Op Fl aBbditwW
200f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when
201469635f6SMateusz Piotrowski.Op Fl -expand-tabs
202*45fc3733SDag-Erling Smørgrav.Op Fl -ignore-all-space
203469635f6SMateusz Piotrowski.Op Fl -ignore-blank-lines
204469635f6SMateusz Piotrowski.Op Fl -ignore-case
205469635f6SMateusz Piotrowski.Op Fl -minimal
20616a75375SDag-Erling Smørgrav.Op Fl -no-dereference
207469635f6SMateusz Piotrowski.Op Fl -no-ignore-file-name-case
208469635f6SMateusz Piotrowski.Op Fl -strip-trailing-cr
209469635f6SMateusz Piotrowski.Op Fl -suppress-common-lines
21043fbd654SKyle Evans.Op Fl -tabsize Ar number
211469635f6SMateusz Piotrowski.Op Fl -text
212469635f6SMateusz Piotrowski.Op Fl -width
21364793e74SBaptiste Daroussin.Fl y | Fl -side-by-side
21464793e74SBaptiste Daroussin.Ar file1 file2
2158cf449dbSTom Jones.Nm diff
2168cf449dbSTom Jones.Op Fl -help
2178cf449dbSTom Jones.Op Fl -version
2183bbe3f67SBaptiste Daroussin.Sh DESCRIPTION
2193bbe3f67SBaptiste DaroussinThe
2203bbe3f67SBaptiste Daroussin.Nm
2213bbe3f67SBaptiste Daroussinutility compares the contents of
2223bbe3f67SBaptiste Daroussin.Ar file1
2233bbe3f67SBaptiste Daroussinand
2243bbe3f67SBaptiste Daroussin.Ar file2
2253bbe3f67SBaptiste Daroussinand writes to the standard output the list of changes necessary to
2263bbe3f67SBaptiste Daroussinconvert one file into the other.
2273bbe3f67SBaptiste DaroussinNo output is produced if the files are identical.
2283bbe3f67SBaptiste Daroussin.Pp
2293bbe3f67SBaptiste DaroussinOutput options (mutually exclusive):
2303bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
231bcf91ad6SBaptiste Daroussin.It Fl C Ar number Fl -context Ar number
2323bbe3f67SBaptiste DaroussinLike
2333bbe3f67SBaptiste Daroussin.Fl c
2343bbe3f67SBaptiste Daroussinbut produces a diff with
2353bbe3f67SBaptiste Daroussin.Ar number
2363bbe3f67SBaptiste Daroussinlines of context.
2373bbe3f67SBaptiste Daroussin.It Fl c
2383bbe3f67SBaptiste DaroussinProduces a diff with 3 lines of context.
2393bbe3f67SBaptiste DaroussinWith
2403bbe3f67SBaptiste Daroussin.Fl c
2413bbe3f67SBaptiste Daroussinthe output format is modified slightly:
2423bbe3f67SBaptiste Daroussinthe output begins with identification of the files involved and
2433bbe3f67SBaptiste Daroussintheir creation dates and then each change is separated
2443bbe3f67SBaptiste Daroussinby a line with fifteen
2453bbe3f67SBaptiste Daroussin.Li * Ns 's .
2463bbe3f67SBaptiste DaroussinThe lines removed from
2473bbe3f67SBaptiste Daroussin.Ar file1
2483bbe3f67SBaptiste Daroussinare marked with
2493bbe3f67SBaptiste Daroussin.Sq \&-\ \& ;
2503bbe3f67SBaptiste Daroussinthose added to
2513bbe3f67SBaptiste Daroussin.Ar file2
2523bbe3f67SBaptiste Daroussinare marked
25379208b10SBaptiste Daroussin.Sq +\ \& .
2543bbe3f67SBaptiste DaroussinLines which are changed from one file to the other are marked in
2553bbe3f67SBaptiste Daroussinboth files with
2563bbe3f67SBaptiste Daroussin.Sq !\ \& .
2573bbe3f67SBaptiste DaroussinChanges which lie within 3 lines of each other are grouped together on
2583bbe3f67SBaptiste Daroussinoutput.
259bcf91ad6SBaptiste Daroussin.It Fl D Ar string Fl -ifdef Ar string
2603bbe3f67SBaptiste DaroussinCreates a merged version of
2613bbe3f67SBaptiste Daroussin.Ar file1
2623bbe3f67SBaptiste Daroussinand
2633bbe3f67SBaptiste Daroussin.Ar file2
2643bbe3f67SBaptiste Daroussinon the standard output, with C preprocessor controls included so that
2653bbe3f67SBaptiste Daroussina compilation of the result without defining
2663bbe3f67SBaptiste Daroussin.Ar string
2673bbe3f67SBaptiste Daroussinis equivalent to compiling
2683bbe3f67SBaptiste Daroussin.Ar file1 ,
2693bbe3f67SBaptiste Daroussinwhile defining
2703bbe3f67SBaptiste Daroussin.Ar string
2713bbe3f67SBaptiste Daroussinwill yield
2723bbe3f67SBaptiste Daroussin.Ar file2 .
273bcf91ad6SBaptiste Daroussin.It Fl e -ed
2743bbe3f67SBaptiste DaroussinProduces output in a form suitable as input for the editor utility,
2753bbe3f67SBaptiste Daroussin.Xr ed 1 ,
2763bbe3f67SBaptiste Daroussinwhich can then be used to convert file1 into file2.
2773bbe3f67SBaptiste Daroussin.Pp
2783bbe3f67SBaptiste DaroussinExtra commands are added to the output when comparing directories with
2793bbe3f67SBaptiste Daroussin.Fl e ,
2803bbe3f67SBaptiste Daroussinso that the result is a
2813bbe3f67SBaptiste Daroussin.Xr sh 1
2823bbe3f67SBaptiste Daroussinscript for converting text files which are common to the two directories
2833bbe3f67SBaptiste Daroussinfrom their state in
2843bbe3f67SBaptiste Daroussin.Ar dir1
2853bbe3f67SBaptiste Daroussinto their state in
2863bbe3f67SBaptiste Daroussin.Ar dir2 .
287bcf91ad6SBaptiste Daroussin.It Fl f -forward-ed
2883bbe3f67SBaptiste DaroussinIdentical output to that of the
2893bbe3f67SBaptiste Daroussin.Fl e
2903bbe3f67SBaptiste Daroussinflag, but in reverse order.
2913bbe3f67SBaptiste DaroussinIt cannot be digested by
2923bbe3f67SBaptiste Daroussin.Xr ed 1 .
2938cf449dbSTom Jones.It Fl -help
2948cf449dbSTom JonesThis option prints a summary to stdout and exits with status 0.
2953bbe3f67SBaptiste Daroussin.It Fl n
2963bbe3f67SBaptiste DaroussinProduces a script similar to that of
2973bbe3f67SBaptiste Daroussin.Fl e ,
2983bbe3f67SBaptiste Daroussinbut in the opposite order and with a count of changed lines on each
2993bbe3f67SBaptiste Daroussininsert or delete command.
300204fa3b0SFernando ApesteguíaThis is the form used by rcsdiff.
301bcf91ad6SBaptiste Daroussin.It Fl q -brief
3023bbe3f67SBaptiste DaroussinJust print a line when the files differ.
3033bbe3f67SBaptiste DaroussinDoes not output a list of changes.
304bcf91ad6SBaptiste Daroussin.It Fl U Ar number Fl -unified Ar number
3053bbe3f67SBaptiste DaroussinLike
3063bbe3f67SBaptiste Daroussin.Fl u
3073bbe3f67SBaptiste Daroussinbut produces a diff with
3083bbe3f67SBaptiste Daroussin.Ar number
3093bbe3f67SBaptiste Daroussinlines of context.
3103bbe3f67SBaptiste Daroussin.It Fl u
3113bbe3f67SBaptiste DaroussinProduces a
3123bbe3f67SBaptiste Daroussin.Em unified
3133bbe3f67SBaptiste Daroussindiff with 3 lines of context.
3143bbe3f67SBaptiste DaroussinA unified diff is similar to the context diff produced by the
3153bbe3f67SBaptiste Daroussin.Fl c
3163bbe3f67SBaptiste Daroussinoption.
3173bbe3f67SBaptiste DaroussinHowever, unlike with
3183bbe3f67SBaptiste Daroussin.Fl c ,
3193bbe3f67SBaptiste Daroussinall lines to be changed (added and/or removed) are present in
3203bbe3f67SBaptiste Daroussina single section.
3218cf449dbSTom Jones.It Fl -version
3228cf449dbSTom JonesThis option prints a version string to stdout and exits with status 0.
32364793e74SBaptiste Daroussin.It Fl y Fl -side-by-side
32479208b10SBaptiste DaroussinOutput in two columns with a marker between them.
32579208b10SBaptiste DaroussinThe marker can be one
32664793e74SBaptiste Daroussinof the following:
32764793e74SBaptiste Daroussin.Pp
32864793e74SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact
32964793e74SBaptiste Daroussin.It space
33064793e74SBaptiste DaroussinCorresponding lines are identical.
33164793e74SBaptiste Daroussin.It '|'
33264793e74SBaptiste DaroussinCorresponding lines are different.
33364793e74SBaptiste Daroussin.It '<'
33464793e74SBaptiste DaroussinFiles differ and only the first file contains the line.
33564793e74SBaptiste Daroussin.It '>'
33664793e74SBaptiste DaroussinFiles differ and only the second file contains the line.
33764793e74SBaptiste Daroussin.El
3383bbe3f67SBaptiste Daroussin.El
3393bbe3f67SBaptiste Daroussin.Pp
3403bbe3f67SBaptiste DaroussinComparison options:
3413bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
342bcf91ad6SBaptiste Daroussin.It Fl a -text
34379208b10SBaptiste DaroussinTreat all files as ASCII text.
3443bbe3f67SBaptiste DaroussinNormally
3453bbe3f67SBaptiste Daroussin.Nm
3463bbe3f67SBaptiste Daroussinwill simply print
3473bbe3f67SBaptiste Daroussin.Dq Binary files ... differ
3483bbe3f67SBaptiste Daroussinif files contain binary characters.
3493bbe3f67SBaptiste DaroussinUse of this option forces
3503bbe3f67SBaptiste Daroussin.Nm
3513bbe3f67SBaptiste Daroussinto produce a diff.
352e68edb8cSKyle Evans.It Fl B Fl -ignore-blank-lines
353e68edb8cSKyle EvansCauses chunks that include only blank lines to be ignored.
3548ccef193SBaptiste Daroussin.It Fl b -ignore-space-change
3553bbe3f67SBaptiste DaroussinCauses trailing blanks (spaces and tabs) to be ignored, and other
3563bbe3f67SBaptiste Daroussinstrings of blanks to compare equal.
357f38702e5SCameron Katri.It Fl -color= Ns Oo Ar when Oc
358f38702e5SCameron KatriColor the additions green, and removals red, or the value in the
359f38702e5SCameron Katri.Ev DIFFCOLORS
360f38702e5SCameron Katrienvironment variable.
361f38702e5SCameron KatriThe possible values of
362f38702e5SCameron Katri.Ar when
363f38702e5SCameron Katriare
364f38702e5SCameron Katri.Dq Cm never ,
365f38702e5SCameron Katri.Dq Cm always
366f38702e5SCameron Katriand
367f38702e5SCameron Katri.Dq Cm auto .
368f38702e5SCameron Katri.Cm auto
369f38702e5SCameron Katriwill use color if the output is a tty and the
370f38702e5SCameron Katri.Ev COLORTERM
371f38702e5SCameron Katrienvironment variable is set to a non-empty string.
372bcf91ad6SBaptiste Daroussin.It Fl d -minimal
3733bbe3f67SBaptiste DaroussinTry very hard to produce a diff as small as possible.
3743bbe3f67SBaptiste DaroussinThis may consume a lot of processing power and memory when processing
3753bbe3f67SBaptiste Daroussinlarge files with many changes.
376e51aabf8SPiotr Pawel Stefaniak.It Fl F Ar pattern, Fl -show-function-line Ar pattern
377e51aabf8SPiotr Pawel StefaniakLike
378e51aabf8SPiotr Pawel Stefaniak.Fl p,
379e51aabf8SPiotr Pawel Stefaniakbut display the last line that matches provided pattern.
380bcf91ad6SBaptiste Daroussin.It Fl I Ar pattern Fl -ignore-matching-lines Ar pattern
3813bbe3f67SBaptiste DaroussinIgnores changes, insertions, and deletions whose lines match the
3823bbe3f67SBaptiste Daroussinextended regular expression
3833bbe3f67SBaptiste Daroussin.Ar pattern .
3843bbe3f67SBaptiste DaroussinMultiple
3853bbe3f67SBaptiste Daroussin.Fl I
3863bbe3f67SBaptiste Daroussinpatterns may be specified.
3873bbe3f67SBaptiste DaroussinAll lines in the change must match some pattern for the change to be
3883bbe3f67SBaptiste Daroussinignored.
3893bbe3f67SBaptiste DaroussinSee
3903bbe3f67SBaptiste Daroussin.Xr re_format 7
3913bbe3f67SBaptiste Daroussinfor more information on regular expression patterns.
392bcf91ad6SBaptiste Daroussin.It Fl i -ignore-case
3933bbe3f67SBaptiste DaroussinIgnores the case of letters.
3943bbe3f67SBaptiste DaroussinE.g.,
3953bbe3f67SBaptiste Daroussin.Dq A
3963bbe3f67SBaptiste Daroussinwill compare equal to
3973bbe3f67SBaptiste Daroussin.Dq a .
398bcf91ad6SBaptiste Daroussin.It Fl l -paginate
3993bbe3f67SBaptiste DaroussinPass the output through
4003bbe3f67SBaptiste Daroussin.Xr pr 1
4013bbe3f67SBaptiste Daroussinto paginate it.
402bcf91ad6SBaptiste Daroussin.It Fl L Ar label Fl -label Ar label
4033bbe3f67SBaptiste DaroussinPrint
4043bbe3f67SBaptiste Daroussin.Ar label
4053bbe3f67SBaptiste Daroussininstead of the first (and second, if this option is specified twice)
4063bbe3f67SBaptiste Daroussinfile name and time in the context or unified diff header.
407bcf91ad6SBaptiste Daroussin.It Fl p -show-c-function
4083bbe3f67SBaptiste DaroussinWith unified and context diffs, show with each change
4093bbe3f67SBaptiste Daroussinthe first 40 characters of the last line before the context beginning
4103bbe3f67SBaptiste Daroussinwith a letter, an underscore or a dollar sign.
4118f79bd9bSTom JonesFor C and Objective-C source code following standard layout conventions, this
4128f79bd9bSTom Joneswill show the prototype of the function the change applies to.
413bcf91ad6SBaptiste Daroussin.It Fl T -initial-tab
4143bbe3f67SBaptiste DaroussinPrint a tab rather than a space before the rest of the line for the
4153bbe3f67SBaptiste Daroussinnormal, context or unified output formats.
4163bbe3f67SBaptiste DaroussinThis makes the alignment of tabs in the line consistent.
417bcf91ad6SBaptiste Daroussin.It Fl t -expand-tabs
4183bbe3f67SBaptiste DaroussinWill expand tabs in output lines.
4193bbe3f67SBaptiste DaroussinNormal or
4203bbe3f67SBaptiste Daroussin.Fl c
4213bbe3f67SBaptiste Daroussinoutput adds character(s) to the front of each line which may screw up
4223bbe3f67SBaptiste Daroussinthe indentation of the original source lines and make the output listing
4233bbe3f67SBaptiste Daroussindifficult to interpret.
4243bbe3f67SBaptiste DaroussinThis option will preserve the original source's indentation.
425*45fc3733SDag-Erling Smørgrav.It Fl w -ignore-all-space
4263bbe3f67SBaptiste DaroussinIs similar to
427bcf91ad6SBaptiste Daroussin.Fl b -ignore-space-change
4283bbe3f67SBaptiste Daroussinbut causes whitespace (blanks and tabs) to be totally ignored.
4293bbe3f67SBaptiste DaroussinE.g.,
4303bbe3f67SBaptiste Daroussin.Dq if (\ \&a == b \&)
4313bbe3f67SBaptiste Daroussinwill compare equal to
4323bbe3f67SBaptiste Daroussin.Dq if(a==b) .
43364793e74SBaptiste Daroussin.It Fl W Ar number Fl -width Ar number
43464793e74SBaptiste DaroussinOutput at most
43564793e74SBaptiste Daroussin.Ar number
43679208b10SBaptiste Daroussincolumns when using side by side format.
43779208b10SBaptiste DaroussinThe default value is 130.
438da290528SDag-Erling SmørgravNote that unless
439da290528SDag-Erling Smørgrav.It Fl t
440da290528SDag-Erling Smørgravwas specified,
441da290528SDag-Erling Smørgrav.Nm
442da290528SDag-Erling Smørgravwill always align the second column to a tab stop, so values of
443da290528SDag-Erling Smørgrav.Fl -width
444da290528SDag-Erling Smørgravsmaller than approximately five times the value of
445da290528SDag-Erling Smørgrav.Fl -tabsize
446da290528SDag-Erling Smørgravmay yield surprising results.
447fddcb7b8SBaptiste Daroussin.It Fl -changed-group-format Ar GFMT
448fddcb7b8SBaptiste DaroussinFormat input groups in the provided
449fddcb7b8SBaptiste Daroussin.Pp
450fddcb7b8SBaptiste Daroussinthe format is a string with special keywords:
451fddcb7b8SBaptiste Daroussin.Bl -tag -width %<
452fddcb7b8SBaptiste Daroussin.It %<
453fddcb7b8SBaptiste Daroussinlines from FILE1
454fddcb7b8SBaptiste Daroussin.It %<
455fddcb7b8SBaptiste Daroussinlines from FILE2
456fddcb7b8SBaptiste Daroussin.El
457bcf91ad6SBaptiste Daroussin.It Fl -ignore-file-name-case
458bcf91ad6SBaptiste Daroussinignore case when comparing file names
45916a75375SDag-Erling Smørgrav.It Fl -no-dereference
46016a75375SDag-Erling Smørgravdo not follow symbolic links
461bcf91ad6SBaptiste Daroussin.It Fl -no-ignore-file-name-case
462bcf91ad6SBaptiste Daroussindo not ignore case wen comparing file names (default)
463bcf91ad6SBaptiste Daroussin.It Fl -normal
464bcf91ad6SBaptiste Daroussindefault diff output
465bcf91ad6SBaptiste Daroussin.It Fl -speed-large-files
466bcf91ad6SBaptiste Daroussinstub option for compatibility with GNU diff
467bcf91ad6SBaptiste Daroussin.It Fl -strip-trailing-cr
468bcf91ad6SBaptiste Daroussinstrip carriage return on input files
46964793e74SBaptiste Daroussin.It Fl -suppress-common-lines
47064793e74SBaptiste DaroussinDo not output common lines when using the side by side format
47164793e74SBaptiste Daroussin.It Fl -tabsize Ar number
472bcf91ad6SBaptiste DaroussinNumber of spaces representing a tab (default 8)
4733bbe3f67SBaptiste Daroussin.El
4743bbe3f67SBaptiste Daroussin.Pp
4753bbe3f67SBaptiste DaroussinDirectory comparison options:
4763bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
477bcf91ad6SBaptiste Daroussin.It Fl N -new-file
4783bbe3f67SBaptiste DaroussinIf a file is found in only one directory, act as if it was found in the
4793bbe3f67SBaptiste Daroussinother directory too but was of zero size.
480bcf91ad6SBaptiste Daroussin.It Fl P -unidirectional-new-file
4813bbe3f67SBaptiste DaroussinIf a file is found only in
4823bbe3f67SBaptiste Daroussin.Ar dir2 ,
4833bbe3f67SBaptiste Daroussinact as if it was found in
4843bbe3f67SBaptiste Daroussin.Ar dir1
4853bbe3f67SBaptiste Daroussintoo but was of zero size.
486bcf91ad6SBaptiste Daroussin.It Fl r -recursive
4873bbe3f67SBaptiste DaroussinCauses application of
4883bbe3f67SBaptiste Daroussin.Nm
4893bbe3f67SBaptiste Daroussinrecursively to common subdirectories encountered.
490bcf91ad6SBaptiste Daroussin.It Fl S Ar name Fl -starting-file Ar name
4913bbe3f67SBaptiste DaroussinRe-starts a directory
4923bbe3f67SBaptiste Daroussin.Nm
4933bbe3f67SBaptiste Daroussinin the middle, beginning with file
4943bbe3f67SBaptiste Daroussin.Ar name .
495bcf91ad6SBaptiste Daroussin.It Fl s -report-identical-files
4963bbe3f67SBaptiste DaroussinCauses
4973bbe3f67SBaptiste Daroussin.Nm
4983bbe3f67SBaptiste Daroussinto report files which are the same, which are otherwise not mentioned.
499bcf91ad6SBaptiste Daroussin.It Fl X Ar file Fl -exclude-from Ar file
5003bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match
5013bbe3f67SBaptiste Daroussinlines in
5023bbe3f67SBaptiste Daroussin.Ar file .
5033bbe3f67SBaptiste DaroussinMultiple
5043bbe3f67SBaptiste Daroussin.Fl X
5053bbe3f67SBaptiste Daroussinoptions may be specified.
506bcf91ad6SBaptiste Daroussin.It Fl x Ar pattern Fl -exclude Ar pattern
5073bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match
5083bbe3f67SBaptiste Daroussin.Ar pattern .
5093bbe3f67SBaptiste DaroussinPatterns are matched using shell-style globbing via
5103bbe3f67SBaptiste Daroussin.Xr fnmatch 3 .
5113bbe3f67SBaptiste DaroussinMultiple
5123bbe3f67SBaptiste Daroussin.Fl x
5133bbe3f67SBaptiste Daroussinoptions may be specified.
5143bbe3f67SBaptiste Daroussin.El
5153bbe3f67SBaptiste Daroussin.Pp
5163bbe3f67SBaptiste DaroussinIf both arguments are directories,
5173bbe3f67SBaptiste Daroussin.Nm
5183bbe3f67SBaptiste Daroussinsorts the contents of the directories by name, and then runs the
5193bbe3f67SBaptiste Daroussinregular file
5203bbe3f67SBaptiste Daroussin.Nm
5213bbe3f67SBaptiste Daroussinalgorithm, producing a change list,
5223bbe3f67SBaptiste Daroussinon text files which are different.
5233bbe3f67SBaptiste DaroussinBinary files which differ,
5243bbe3f67SBaptiste Daroussincommon subdirectories, and files which appear in only one directory
5253bbe3f67SBaptiste Daroussinare described as such.
5263bbe3f67SBaptiste DaroussinIn directory mode only regular files and directories are compared.
52779208b10SBaptiste DaroussinIf a non-regular file such as a device special file or FIFO is encountered,
52879208b10SBaptiste Daroussina diagnostic message is printed.
5293bbe3f67SBaptiste Daroussin.Pp
5303bbe3f67SBaptiste DaroussinIf only one of
5313bbe3f67SBaptiste Daroussin.Ar file1
5323bbe3f67SBaptiste Daroussinand
5333bbe3f67SBaptiste Daroussin.Ar file2
5343bbe3f67SBaptiste Daroussinis a directory,
5353bbe3f67SBaptiste Daroussin.Nm
5363bbe3f67SBaptiste Daroussinis applied to the non-directory file and the file contained in
5373bbe3f67SBaptiste Daroussinthe directory file with a filename that is the same as the
5383bbe3f67SBaptiste Daroussinlast component of the non-directory file.
5393bbe3f67SBaptiste Daroussin.Pp
5403bbe3f67SBaptiste DaroussinIf either
5413bbe3f67SBaptiste Daroussin.Ar file1
5423bbe3f67SBaptiste Daroussinor
5433bbe3f67SBaptiste Daroussin.Ar file2
5443bbe3f67SBaptiste Daroussinis
5453bbe3f67SBaptiste Daroussin.Sq - ,
5463bbe3f67SBaptiste Daroussinthe standard input is
5473bbe3f67SBaptiste Daroussinused in its place.
5483bbe3f67SBaptiste Daroussin.Ss Output Style
5493bbe3f67SBaptiste DaroussinThe default (without
5503bbe3f67SBaptiste Daroussin.Fl e ,
5513bbe3f67SBaptiste Daroussin.Fl c ,
5523bbe3f67SBaptiste Daroussinor
553bcf91ad6SBaptiste Daroussin.Fl n -rcs
5543bbe3f67SBaptiste Daroussin.\" -C
5553bbe3f67SBaptiste Daroussinoptions)
5563bbe3f67SBaptiste Daroussinoutput contains lines of these forms, where
5573bbe3f67SBaptiste Daroussin.Va XX , YY , ZZ , QQ
5583bbe3f67SBaptiste Daroussinare line numbers respective of file order.
5593bbe3f67SBaptiste Daroussin.Pp
5603bbe3f67SBaptiste Daroussin.Bl -tag -width "XX,YYcZZ,QQ" -compact
5613bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY
5623bbe3f67SBaptiste DaroussinAt (the end of) line
5633bbe3f67SBaptiste Daroussin.Va XX
5643bbe3f67SBaptiste Daroussinof
5653bbe3f67SBaptiste Daroussin.Ar file1 ,
5663bbe3f67SBaptiste Daroussinappend the contents
5673bbe3f67SBaptiste Daroussinof line
5683bbe3f67SBaptiste Daroussin.Va YY
5693bbe3f67SBaptiste Daroussinof
5703bbe3f67SBaptiste Daroussin.Ar file2
5713bbe3f67SBaptiste Daroussinto make them equal.
5723bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY,ZZ
5733bbe3f67SBaptiste DaroussinSame as above, but append the range of lines,
5743bbe3f67SBaptiste Daroussin.Va YY
5753bbe3f67SBaptiste Daroussinthrough
5763bbe3f67SBaptiste Daroussin.Va ZZ
5773bbe3f67SBaptiste Daroussinof
5783bbe3f67SBaptiste Daroussin.Ar file2
5793bbe3f67SBaptiste Daroussinto line
5803bbe3f67SBaptiste Daroussin.Va XX
5813bbe3f67SBaptiste Daroussinof file1.
5823bbe3f67SBaptiste Daroussin.It Li XX Ns Ic d Ns Li YY
5833bbe3f67SBaptiste DaroussinAt line
5843bbe3f67SBaptiste Daroussin.Va XX
5853bbe3f67SBaptiste Daroussindelete
5863bbe3f67SBaptiste Daroussinthe line.
5873bbe3f67SBaptiste DaroussinThe value
5883bbe3f67SBaptiste Daroussin.Va YY
5893bbe3f67SBaptiste Daroussintells to which line the change would bring
5903bbe3f67SBaptiste Daroussin.Ar file1
5913bbe3f67SBaptiste Daroussinin line with
5923bbe3f67SBaptiste Daroussin.Ar file2 .
5933bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic d Ns Li ZZ
5943bbe3f67SBaptiste DaroussinDelete the range of lines
5953bbe3f67SBaptiste Daroussin.Va XX
5963bbe3f67SBaptiste Daroussinthrough
5973bbe3f67SBaptiste Daroussin.Va YY
5983bbe3f67SBaptiste Daroussinin
5993bbe3f67SBaptiste Daroussin.Ar file1 .
6003bbe3f67SBaptiste Daroussin.It Li XX Ns Ic c Ns Li YY
6013bbe3f67SBaptiste DaroussinChange the line
6023bbe3f67SBaptiste Daroussin.Va XX
6033bbe3f67SBaptiste Daroussinin
6043bbe3f67SBaptiste Daroussin.Ar file1
6053bbe3f67SBaptiste Daroussinto the line
6063bbe3f67SBaptiste Daroussin.Va YY
6073bbe3f67SBaptiste Daroussinin
6083bbe3f67SBaptiste Daroussin.Ar file2 .
6093bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ
6103bbe3f67SBaptiste DaroussinReplace the range of specified lines with the line
6113bbe3f67SBaptiste Daroussin.Va ZZ .
6123bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ,QQ
6133bbe3f67SBaptiste DaroussinReplace the range
6143bbe3f67SBaptiste Daroussin.Va XX , Ns Va YY
6153bbe3f67SBaptiste Daroussinfrom
6163bbe3f67SBaptiste Daroussin.Ar file1
6173bbe3f67SBaptiste Daroussinwith the range
6183bbe3f67SBaptiste Daroussin.Va ZZ , Ns Va QQ
6193bbe3f67SBaptiste Daroussinfrom
6203bbe3f67SBaptiste Daroussin.Ar file2 .
6213bbe3f67SBaptiste Daroussin.El
6223bbe3f67SBaptiste Daroussin.Pp
6233bbe3f67SBaptiste DaroussinThese lines resemble
6243bbe3f67SBaptiste Daroussin.Xr ed 1
6253bbe3f67SBaptiste Daroussinsubcommands to convert
6263bbe3f67SBaptiste Daroussin.Ar file1
6273bbe3f67SBaptiste Daroussininto
6283bbe3f67SBaptiste Daroussin.Ar file2 .
6293bbe3f67SBaptiste DaroussinThe line numbers before the action letters pertain to
6303bbe3f67SBaptiste Daroussin.Ar file1 ;
6313bbe3f67SBaptiste Daroussinthose after pertain to
6323bbe3f67SBaptiste Daroussin.Ar file2 .
6333bbe3f67SBaptiste DaroussinThus, by exchanging
6343bbe3f67SBaptiste Daroussin.Ic a
6353bbe3f67SBaptiste Daroussinfor
6363bbe3f67SBaptiste Daroussin.Ic d
6373bbe3f67SBaptiste Daroussinand reading the line in reverse order, one can also
6383bbe3f67SBaptiste Daroussindetermine how to convert
6393bbe3f67SBaptiste Daroussin.Ar file2
6403bbe3f67SBaptiste Daroussininto
6413bbe3f67SBaptiste Daroussin.Ar file1 .
6423bbe3f67SBaptiste DaroussinAs in
6433bbe3f67SBaptiste Daroussin.Xr ed 1 ,
6443bbe3f67SBaptiste Daroussinidentical
6453bbe3f67SBaptiste Daroussinpairs (where num1 = num2) are abbreviated as a single
6463bbe3f67SBaptiste Daroussinnumber.
647f38702e5SCameron Katri.Sh ENVIRONMENT
648f38702e5SCameron Katri.Bl -tag -width DIFFCOLORS
649f38702e5SCameron Katri.It Ev DIFFCOLORS
650f38702e5SCameron KatriThe value of this variable is the form
651f38702e5SCameron Katri.Ar add Ns : Ns Ar rm ,
652f38702e5SCameron Katriwhere
653f38702e5SCameron Katri.Ar add
654f38702e5SCameron Katriis the ASCII escape sequence for additions and
655f38702e5SCameron Katri.Ar rm
656f38702e5SCameron Katriis the ASCII escape sequence for deletions.
657f38702e5SCameron KatriIf this is unset,
658f38702e5SCameron Katri.Nm
659f38702e5SCameron Katriuses green for additions and red for removals.
660f38702e5SCameron Katri.El
6613bbe3f67SBaptiste Daroussin.Sh FILES
6623bbe3f67SBaptiste Daroussin.Bl -tag -width /tmp/diff.XXXXXXXX -compact
66379208b10SBaptiste Daroussin.It Pa /tmp/diff.XXXXXXXX
6643bbe3f67SBaptiste DaroussinTemporary file used when comparing a device or the standard input.
6653bbe3f67SBaptiste DaroussinNote that the temporary file is unlinked as soon as it is created
6663bbe3f67SBaptiste Daroussinso it will not show up in a directory listing.
6673bbe3f67SBaptiste Daroussin.El
6683bbe3f67SBaptiste Daroussin.Sh EXIT STATUS
6693bbe3f67SBaptiste DaroussinThe
6703bbe3f67SBaptiste Daroussin.Nm
6713bbe3f67SBaptiste Daroussinutility exits with one of the following values:
6723bbe3f67SBaptiste Daroussin.Pp
6733bbe3f67SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact
6743bbe3f67SBaptiste Daroussin.It 0
6753bbe3f67SBaptiste DaroussinNo differences were found.
6763bbe3f67SBaptiste Daroussin.It 1
6773bbe3f67SBaptiste DaroussinDifferences were found.
6783bbe3f67SBaptiste Daroussin.It >1
6793bbe3f67SBaptiste DaroussinAn error occurred.
6803bbe3f67SBaptiste Daroussin.El
6818cf449dbSTom Jones.Pp
6828cf449dbSTom JonesThe
6838cf449dbSTom Jones.Fl -help
6848cf449dbSTom Jonesand
6858cf449dbSTom Jones.Fl -version
6868cf449dbSTom Jonesoptions exit with a status of 0.
687204fa3b0SFernando Apesteguía.Sh EXAMPLES
688204fa3b0SFernando ApesteguíaCompare
689204fa3b0SFernando Apesteguía.Pa old_dir
690204fa3b0SFernando Apesteguíaand
691204fa3b0SFernando Apesteguía.Pa new_dir
692204fa3b0SFernando Apesteguíarecursively generating an unified diff and treating files found only in one
693204fa3b0SFernando Apesteguíaof those directories as new files:
694204fa3b0SFernando Apesteguía.Bd -literal -offset indent
695204fa3b0SFernando Apesteguía$ diff -ruN /path/to/old_dir /path/to/new_dir
696204fa3b0SFernando Apesteguía.Ed
697204fa3b0SFernando Apesteguía.Pp
698204fa3b0SFernando ApesteguíaSame as above but excluding files matching the expressions
699204fa3b0SFernando Apesteguía.Dq *.h
700204fa3b0SFernando Apesteguíaand
701204fa3b0SFernando Apesteguía.Dq *.c :
702204fa3b0SFernando Apesteguía.Bd -literal -offset indent
703204fa3b0SFernando Apesteguía$ diff -ruN -x '*.h' -x '*.c' /path/to/old_dir /path/to/new_dir
704204fa3b0SFernando Apesteguía.Ed
705204fa3b0SFernando Apesteguía.Pp
706204fa3b0SFernando ApesteguíaShow a single line indicating if the files differ:
707204fa3b0SFernando Apesteguía.Bd -literal -offset indent
708204fa3b0SFernando Apesteguía$ diff -q /boot/loader.conf /boot/defaults/loader.conf
709204fa3b0SFernando ApesteguíaFiles /boot/loader.conf and /boot/defaults/loader.conf differ
710204fa3b0SFernando Apesteguía.Ed
711204fa3b0SFernando Apesteguía.Pp
712204fa3b0SFernando ApesteguíaAssuming a file named
713204fa3b0SFernando Apesteguía.Pa example.txt
714204fa3b0SFernando Apesteguíawith the following contents:
715204fa3b0SFernando Apesteguía.Bd -literal -offset indent
716204fa3b0SFernando ApesteguíaFreeBSD is an operating system
717204fa3b0SFernando ApesteguíaLinux is a kernel
718204fa3b0SFernando ApesteguíaOpenBSD is an operating system
719204fa3b0SFernando Apesteguía.Ed
720204fa3b0SFernando Apesteguía.Pp
721204fa3b0SFernando ApesteguíaCompare stdin with
722204fa3b0SFernando Apesteguía.Pa example.txt
723204fa3b0SFernando Apesteguíaexcluding from the comparison those lines containing either
724204fa3b0SFernando Apesteguía.Qq Linux
725204fa3b0SFernando Apesteguíaor
726204fa3b0SFernando Apesteguía.Qq Open :
727204fa3b0SFernando Apesteguía.Bd -literal -offset indent
728204fa3b0SFernando Apesteguía$ echo "FreeBSD is an operating system" | diff -q -I 'Linux|Open' example.txt -
729204fa3b0SFernando Apesteguía.Ed
7303bbe3f67SBaptiste Daroussin.Sh SEE ALSO
7313bbe3f67SBaptiste Daroussin.Xr cmp 1 ,
7323bbe3f67SBaptiste Daroussin.Xr comm 1 ,
7333bbe3f67SBaptiste Daroussin.Xr diff3 1 ,
7343bbe3f67SBaptiste Daroussin.Xr ed 1 ,
7353bbe3f67SBaptiste Daroussin.Xr patch 1 ,
736933870f0SBaptiste Daroussin.Xr pr 1 ,
7373bbe3f67SBaptiste Daroussin.Xr sdiff 1
7383bbe3f67SBaptiste Daroussin.Rs
7393bbe3f67SBaptiste Daroussin.%A James W. Hunt
7403bbe3f67SBaptiste Daroussin.%A M. Douglas McIlroy
7413bbe3f67SBaptiste Daroussin.%T "An Algorithm for Differential File Comparison"
7423bbe3f67SBaptiste Daroussin.%J Computing Science Technical Report
7433bbe3f67SBaptiste Daroussin.%Q Bell Laboratories 41
7443bbe3f67SBaptiste Daroussin.%D June 1976
7453bbe3f67SBaptiste Daroussin.Re
7463bbe3f67SBaptiste Daroussin.Sh STANDARDS
7473bbe3f67SBaptiste DaroussinThe
7483bbe3f67SBaptiste Daroussin.Nm
7493bbe3f67SBaptiste Daroussinutility is compliant with the
7503bbe3f67SBaptiste Daroussin.St -p1003.1-2008
7513bbe3f67SBaptiste Daroussinspecification.
7523bbe3f67SBaptiste Daroussin.Pp
7533bbe3f67SBaptiste DaroussinThe flags
754469635f6SMateusz Piotrowski.Op Fl aDdIiLlNnPpqSsTtwXxy
7553bbe3f67SBaptiste Daroussinare extensions to that specification.
7563bbe3f67SBaptiste Daroussin.Sh HISTORY
7573bbe3f67SBaptiste DaroussinA
7583bbe3f67SBaptiste Daroussin.Nm
7593bbe3f67SBaptiste Daroussincommand appeared in
7603bbe3f67SBaptiste Daroussin.At v6 .
761