xref: /minix3/minix/usr.bin/diff/diff.1 (revision d8634bad6a79279cd9e9d2d23ed4f243d8d69da2)
1*d8634badSDavid van Moolenbroek.\" $OpenBSD: diff.1,v 1.37 2010/02/21 15:24:01 sobrado Exp $
2*d8634badSDavid van Moolenbroek.\"
3*d8634badSDavid van Moolenbroek.\" Copyright (c) 1980, 1990, 1993
4*d8634badSDavid van Moolenbroek.\"	The Regents of the University of California.  All rights reserved.
5*d8634badSDavid van Moolenbroek.\"
6*d8634badSDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
7*d8634badSDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
8*d8634badSDavid van Moolenbroek.\" are met:
9*d8634badSDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
10*d8634badSDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
11*d8634badSDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
12*d8634badSDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
13*d8634badSDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
14*d8634badSDavid van Moolenbroek.\" 3. Neither the name of the University nor the names of its contributors
15*d8634badSDavid van Moolenbroek.\"    may be used to endorse or promote products derived from this software
16*d8634badSDavid van Moolenbroek.\"    without specific prior written permission.
17*d8634badSDavid van Moolenbroek.\"
18*d8634badSDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19*d8634badSDavid van Moolenbroek.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20*d8634badSDavid van Moolenbroek.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21*d8634badSDavid van Moolenbroek.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22*d8634badSDavid van Moolenbroek.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23*d8634badSDavid van Moolenbroek.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24*d8634badSDavid van Moolenbroek.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25*d8634badSDavid van Moolenbroek.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26*d8634badSDavid van Moolenbroek.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27*d8634badSDavid van Moolenbroek.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28*d8634badSDavid van Moolenbroek.\" SUCH DAMAGE.
29*d8634badSDavid van Moolenbroek.\"
30*d8634badSDavid van Moolenbroek.\"     @(#)diff.1	8.1 (Berkeley) 6/30/93
31*d8634badSDavid van Moolenbroek.\"
32*d8634badSDavid van Moolenbroek.Dd $Mdocdate: February 21 2010 $
33*d8634badSDavid van Moolenbroek.Dt DIFF 1
34*d8634badSDavid van Moolenbroek.Os
35*d8634badSDavid van Moolenbroek.Sh NAME
36*d8634badSDavid van Moolenbroek.Nm diff
37*d8634badSDavid van Moolenbroek.Nd differential file and directory comparator
38*d8634badSDavid van Moolenbroek.Sh SYNOPSIS
39*d8634badSDavid van Moolenbroek.Nm diff
40*d8634badSDavid van Moolenbroek.Op Fl abdilpTtw
41*d8634badSDavid van Moolenbroek.Oo
42*d8634badSDavid van Moolenbroek.Fl c | e | f |
43*d8634badSDavid van Moolenbroek.Fl n | q | u
44*d8634badSDavid van Moolenbroek.Oc
45*d8634badSDavid van Moolenbroek.Op Fl I Ar pattern
46*d8634badSDavid van Moolenbroek.Op Fl L Ar label
47*d8634badSDavid van Moolenbroek.Ar file1 file2
48*d8634badSDavid van Moolenbroek.Nm diff
49*d8634badSDavid van Moolenbroek.Op Fl abdilpTtw
50*d8634badSDavid van Moolenbroek.Op Fl I Ar pattern
51*d8634badSDavid van Moolenbroek.Op Fl L Ar label
52*d8634badSDavid van Moolenbroek.Fl C Ar number
53*d8634badSDavid van Moolenbroek.Ar file1 file2
54*d8634badSDavid van Moolenbroek.Nm diff
55*d8634badSDavid van Moolenbroek.Op Fl abdiltw
56*d8634badSDavid van Moolenbroek.Op Fl I Ar pattern
57*d8634badSDavid van Moolenbroek.Fl D Ar string
58*d8634badSDavid van Moolenbroek.Ar file1 file2
59*d8634badSDavid van Moolenbroek.Nm diff
60*d8634badSDavid van Moolenbroek.Op Fl abdilpTtw
61*d8634badSDavid van Moolenbroek.Op Fl I Ar pattern
62*d8634badSDavid van Moolenbroek.Op Fl L Ar label
63*d8634badSDavid van Moolenbroek.Fl U Ar number
64*d8634badSDavid van Moolenbroek.Ar file1 file2
65*d8634badSDavid van Moolenbroek.Nm diff
66*d8634badSDavid van Moolenbroek.Op Fl abdilNPprsTtw
67*d8634badSDavid van Moolenbroek.Oo
68*d8634badSDavid van Moolenbroek.Fl c | e | f |
69*d8634badSDavid van Moolenbroek.Fl n | q | u
70*d8634badSDavid van Moolenbroek.Oc
71*d8634badSDavid van Moolenbroek.Op Fl I Ar pattern
72*d8634badSDavid van Moolenbroek.Bk -words
73*d8634badSDavid van Moolenbroek.Op Fl L Ar label
74*d8634badSDavid van Moolenbroek.Op Fl S Ar name
75*d8634badSDavid van Moolenbroek.Op Fl X Ar file
76*d8634badSDavid van Moolenbroek.Op Fl x Ar pattern
77*d8634badSDavid van Moolenbroek.Ek
78*d8634badSDavid van Moolenbroek.Ar dir1 dir2
79*d8634badSDavid van Moolenbroek.Sh DESCRIPTION
80*d8634badSDavid van MoolenbroekThe
81*d8634badSDavid van Moolenbroek.Nm
82*d8634badSDavid van Moolenbroekutility compares the contents of
83*d8634badSDavid van Moolenbroek.Ar file1
84*d8634badSDavid van Moolenbroekand
85*d8634badSDavid van Moolenbroek.Ar file2
86*d8634badSDavid van Moolenbroekand writes to the standard output the list of changes necessary to
87*d8634badSDavid van Moolenbroekconvert one file into the other.
88*d8634badSDavid van MoolenbroekNo output is produced if the files are identical.
89*d8634badSDavid van Moolenbroek.Pp
90*d8634badSDavid van MoolenbroekOutput options (mutually exclusive):
91*d8634badSDavid van Moolenbroek.Bl -tag -width Ds
92*d8634badSDavid van Moolenbroek.It Fl C Ar number
93*d8634badSDavid van MoolenbroekLike
94*d8634badSDavid van Moolenbroek.Fl c
95*d8634badSDavid van Moolenbroekbut produces a diff with
96*d8634badSDavid van Moolenbroek.Ar number
97*d8634badSDavid van Moolenbroeklines of context.
98*d8634badSDavid van Moolenbroek.It Fl c
99*d8634badSDavid van MoolenbroekProduces a diff with 3 lines of context.
100*d8634badSDavid van MoolenbroekWith
101*d8634badSDavid van Moolenbroek.Fl c
102*d8634badSDavid van Moolenbroekthe output format is modified slightly:
103*d8634badSDavid van Moolenbroekthe output begins with identification of the files involved and
104*d8634badSDavid van Moolenbroektheir creation dates and then each change is separated
105*d8634badSDavid van Moolenbroekby a line with fifteen
106*d8634badSDavid van Moolenbroek.Li * Ns 's .
107*d8634badSDavid van MoolenbroekThe lines removed from
108*d8634badSDavid van Moolenbroek.Ar file1
109*d8634badSDavid van Moolenbroekare marked with
110*d8634badSDavid van Moolenbroek.Sq \&-\ \& ;
111*d8634badSDavid van Moolenbroekthose added to
112*d8634badSDavid van Moolenbroek.Ar file2
113*d8634badSDavid van Moolenbroekare marked
114*d8634badSDavid van Moolenbroek.Sq \+\ \& .
115*d8634badSDavid van MoolenbroekLines which are changed from one file to the other are marked in
116*d8634badSDavid van Moolenbroekboth files with
117*d8634badSDavid van Moolenbroek.Sq !\ \& .
118*d8634badSDavid van MoolenbroekChanges which lie within 3 lines of each other are grouped together on
119*d8634badSDavid van Moolenbroekoutput.
120*d8634badSDavid van Moolenbroek.It Fl D Ar string
121*d8634badSDavid van MoolenbroekCreates a merged version of
122*d8634badSDavid van Moolenbroek.Ar file1
123*d8634badSDavid van Moolenbroekand
124*d8634badSDavid van Moolenbroek.Ar file2
125*d8634badSDavid van Moolenbroekon the standard output, with C preprocessor controls included so that
126*d8634badSDavid van Moolenbroeka compilation of the result without defining
127*d8634badSDavid van Moolenbroek.Ar string
128*d8634badSDavid van Moolenbroekis equivalent to compiling
129*d8634badSDavid van Moolenbroek.Ar file1 ,
130*d8634badSDavid van Moolenbroekwhile defining
131*d8634badSDavid van Moolenbroek.Ar string
132*d8634badSDavid van Moolenbroekwill yield
133*d8634badSDavid van Moolenbroek.Ar file2 .
134*d8634badSDavid van Moolenbroek.It Fl e
135*d8634badSDavid van MoolenbroekProduces output in a form suitable as input for the editor utility,
136*d8634badSDavid van Moolenbroek.Xr ed 1 ,
137*d8634badSDavid van Moolenbroekwhich can then be used to convert file1 into file2.
138*d8634badSDavid van Moolenbroek.Pp
139*d8634badSDavid van MoolenbroekExtra commands are added to the output when comparing directories with
140*d8634badSDavid van Moolenbroek.Fl e ,
141*d8634badSDavid van Moolenbroekso that the result is a
142*d8634badSDavid van Moolenbroek.Xr sh 1
143*d8634badSDavid van Moolenbroekscript for converting text files which are common to the two directories
144*d8634badSDavid van Moolenbroekfrom their state in
145*d8634badSDavid van Moolenbroek.Ar dir1
146*d8634badSDavid van Moolenbroekto their state in
147*d8634badSDavid van Moolenbroek.Ar dir2 .
148*d8634badSDavid van Moolenbroek.It Fl f
149*d8634badSDavid van MoolenbroekIdentical output to that of the
150*d8634badSDavid van Moolenbroek.Fl e
151*d8634badSDavid van Moolenbroekflag, but in reverse order.
152*d8634badSDavid van MoolenbroekIt cannot be digested by
153*d8634badSDavid van Moolenbroek.Xr ed 1 .
154*d8634badSDavid van Moolenbroek.It Fl n
155*d8634badSDavid van MoolenbroekProduces a script similar to that of
156*d8634badSDavid van Moolenbroek.Fl e ,
157*d8634badSDavid van Moolenbroekbut in the opposite order and with a count of changed lines on each
158*d8634badSDavid van Moolenbroekinsert or delete command.
159*d8634badSDavid van MoolenbroekThis is the form used by
160*d8634badSDavid van Moolenbroek.Xr rcsdiff 1 .
161*d8634badSDavid van Moolenbroek.It Fl q
162*d8634badSDavid van MoolenbroekJust print a line when the files differ.
163*d8634badSDavid van MoolenbroekDoes not output a list of changes.
164*d8634badSDavid van Moolenbroek.It Fl U Ar number
165*d8634badSDavid van MoolenbroekLike
166*d8634badSDavid van Moolenbroek.Fl u
167*d8634badSDavid van Moolenbroekbut produces a diff with
168*d8634badSDavid van Moolenbroek.Ar number
169*d8634badSDavid van Moolenbroeklines of context.
170*d8634badSDavid van Moolenbroek.It Fl u
171*d8634badSDavid van MoolenbroekProduces a
172*d8634badSDavid van Moolenbroek.Em unified
173*d8634badSDavid van Moolenbroekdiff with 3 lines of context.
174*d8634badSDavid van MoolenbroekA unified diff is similar to the context diff produced by the
175*d8634badSDavid van Moolenbroek.Fl c
176*d8634badSDavid van Moolenbroekoption.
177*d8634badSDavid van MoolenbroekHowever, unlike with
178*d8634badSDavid van Moolenbroek.Fl c ,
179*d8634badSDavid van Moolenbroekall lines to be changed (added and/or removed) are present in
180*d8634badSDavid van Moolenbroeka single section.
181*d8634badSDavid van Moolenbroek.El
182*d8634badSDavid van Moolenbroek.Pp
183*d8634badSDavid van MoolenbroekComparison options:
184*d8634badSDavid van Moolenbroek.Bl -tag -width Ds
185*d8634badSDavid van Moolenbroek.It Fl a
186*d8634badSDavid van MoolenbroekTreat all files as
187*d8634badSDavid van Moolenbroek.Tn ASCII
188*d8634badSDavid van Moolenbroektext.
189*d8634badSDavid van MoolenbroekNormally
190*d8634badSDavid van Moolenbroek.Nm
191*d8634badSDavid van Moolenbroekwill simply print
192*d8634badSDavid van Moolenbroek.Dq Binary files ... differ
193*d8634badSDavid van Moolenbroekif files contain binary characters.
194*d8634badSDavid van MoolenbroekUse of this option forces
195*d8634badSDavid van Moolenbroek.Nm
196*d8634badSDavid van Moolenbroekto produce a diff.
197*d8634badSDavid van Moolenbroek.It Fl b
198*d8634badSDavid van MoolenbroekCauses trailing blanks (spaces and tabs) to be ignored, and other
199*d8634badSDavid van Moolenbroekstrings of blanks to compare equal.
200*d8634badSDavid van Moolenbroek.It Fl d
201*d8634badSDavid van MoolenbroekTry very hard to produce a diff as small as possible.
202*d8634badSDavid van MoolenbroekThis may consume a lot of processing power and memory when processing
203*d8634badSDavid van Moolenbroeklarge files with many changes.
204*d8634badSDavid van Moolenbroek.It Fl I Ar pattern
205*d8634badSDavid van MoolenbroekIgnores changes, insertions, and deletions whose lines match the
206*d8634badSDavid van Moolenbroekextended regular expression
207*d8634badSDavid van Moolenbroek.Ar pattern .
208*d8634badSDavid van MoolenbroekMultiple
209*d8634badSDavid van Moolenbroek.Fl I
210*d8634badSDavid van Moolenbroekpatterns may be specified.
211*d8634badSDavid van MoolenbroekAll lines in the change must match some pattern for the change to be
212*d8634badSDavid van Moolenbroekignored.
213*d8634badSDavid van MoolenbroekSee
214*d8634badSDavid van Moolenbroek.Xr re_format 7
215*d8634badSDavid van Moolenbroekfor more information on regular expression patterns.
216*d8634badSDavid van Moolenbroek.It Fl i
217*d8634badSDavid van MoolenbroekIgnores the case of letters.
218*d8634badSDavid van MoolenbroekE.g.,
219*d8634badSDavid van Moolenbroek.Dq A
220*d8634badSDavid van Moolenbroekwill compare equal to
221*d8634badSDavid van Moolenbroek.Dq a .
222*d8634badSDavid van Moolenbroek.It Fl L Ar label
223*d8634badSDavid van MoolenbroekPrint
224*d8634badSDavid van Moolenbroek.Ar label
225*d8634badSDavid van Moolenbroekinstead of the first (and second, if this option is specified twice)
226*d8634badSDavid van Moolenbroekfile name and time in the context or unified diff header.
227*d8634badSDavid van Moolenbroek.It Fl l
228*d8634badSDavid van MoolenbroekLong output format; each text file
229*d8634badSDavid van Moolenbroek.Nm diff Ns \'d
230*d8634badSDavid van Moolenbroekis piped through
231*d8634badSDavid van Moolenbroek.Xr pr 1
232*d8634badSDavid van Moolenbroekto paginate it;
233*d8634badSDavid van Moolenbroekother differences are remembered and summarized
234*d8634badSDavid van Moolenbroekafter all text file differences are reported.
235*d8634badSDavid van Moolenbroek.It Fl p
236*d8634badSDavid van MoolenbroekWith unified and context diffs, show with each change
237*d8634badSDavid van Moolenbroekthe first 40 characters of the last line before the context beginning
238*d8634badSDavid van Moolenbroekwith a letter, an underscore or a dollar sign.
239*d8634badSDavid van MoolenbroekFor C source code following standard layout conventions, this will
240*d8634badSDavid van Moolenbroekshow the prototype of the function the change applies to.
241*d8634badSDavid van Moolenbroek.It Fl T
242*d8634badSDavid van MoolenbroekPrint a tab rather than a space before the rest of the line for the
243*d8634badSDavid van Moolenbroeknormal, context or unified output formats.
244*d8634badSDavid van MoolenbroekThis makes the alignment of tabs in the line consistent.
245*d8634badSDavid van Moolenbroek.It Fl t
246*d8634badSDavid van MoolenbroekWill expand tabs in output lines.
247*d8634badSDavid van MoolenbroekNormal or
248*d8634badSDavid van Moolenbroek.Fl c
249*d8634badSDavid van Moolenbroekoutput adds character(s) to the front of each line which may screw up
250*d8634badSDavid van Moolenbroekthe indentation of the original source lines and make the output listing
251*d8634badSDavid van Moolenbroekdifficult to interpret.
252*d8634badSDavid van MoolenbroekThis option will preserve the original source's indentation.
253*d8634badSDavid van Moolenbroek.It Fl w
254*d8634badSDavid van MoolenbroekIs similar to
255*d8634badSDavid van Moolenbroek.Fl b
256*d8634badSDavid van Moolenbroekbut causes whitespace (blanks and tabs) to be totally ignored.
257*d8634badSDavid van MoolenbroekE.g.,
258*d8634badSDavid van Moolenbroek.Dq if (\ \&a == b \&)
259*d8634badSDavid van Moolenbroekwill compare equal to
260*d8634badSDavid van Moolenbroek.Dq if(a==b) .
261*d8634badSDavid van Moolenbroek.El
262*d8634badSDavid van Moolenbroek.Pp
263*d8634badSDavid van MoolenbroekDirectory comparison options:
264*d8634badSDavid van Moolenbroek.Bl -tag -width Ds
265*d8634badSDavid van Moolenbroek.It Fl N
266*d8634badSDavid van MoolenbroekIf a file is found in only one directory, act as if it was found in the
267*d8634badSDavid van Moolenbroekother directory too but was of zero size.
268*d8634badSDavid van Moolenbroek.It Fl P
269*d8634badSDavid van MoolenbroekIf a file is found only in
270*d8634badSDavid van Moolenbroek.Ar dir2 ,
271*d8634badSDavid van Moolenbroekact as if it was found in
272*d8634badSDavid van Moolenbroek.Ar dir1
273*d8634badSDavid van Moolenbroektoo but was of zero size.
274*d8634badSDavid van Moolenbroek.It Fl r
275*d8634badSDavid van MoolenbroekCauses application of
276*d8634badSDavid van Moolenbroek.Nm
277*d8634badSDavid van Moolenbroekrecursively to common subdirectories encountered.
278*d8634badSDavid van Moolenbroek.It Fl S Ar name
279*d8634badSDavid van MoolenbroekRe-starts a directory
280*d8634badSDavid van Moolenbroek.Nm
281*d8634badSDavid van Moolenbroekin the middle, beginning with file
282*d8634badSDavid van Moolenbroek.Ar name .
283*d8634badSDavid van Moolenbroek.It Fl s
284*d8634badSDavid van MoolenbroekCauses
285*d8634badSDavid van Moolenbroek.Nm
286*d8634badSDavid van Moolenbroekto report files which are the same, which are otherwise not mentioned.
287*d8634badSDavid van Moolenbroek.It Fl X Ar file
288*d8634badSDavid van MoolenbroekExclude files and subdirectories from comparison whose basenames match
289*d8634badSDavid van Moolenbroeklines in
290*d8634badSDavid van Moolenbroek.Ar file .
291*d8634badSDavid van MoolenbroekMultiple
292*d8634badSDavid van Moolenbroek.Fl X
293*d8634badSDavid van Moolenbroekoptions may be specified.
294*d8634badSDavid van Moolenbroek.It Fl x Ar pattern
295*d8634badSDavid van MoolenbroekExclude files and subdirectories from comparison whose basenames match
296*d8634badSDavid van Moolenbroek.Ar pattern .
297*d8634badSDavid van MoolenbroekPatterns are matched using shell-style globbing via
298*d8634badSDavid van Moolenbroek.Xr fnmatch 3 .
299*d8634badSDavid van MoolenbroekMultiple
300*d8634badSDavid van Moolenbroek.Fl x
301*d8634badSDavid van Moolenbroekoptions may be specified.
302*d8634badSDavid van Moolenbroek.El
303*d8634badSDavid van Moolenbroek.Pp
304*d8634badSDavid van MoolenbroekIf both arguments are directories,
305*d8634badSDavid van Moolenbroek.Nm
306*d8634badSDavid van Moolenbroeksorts the contents of the directories by name, and then runs the
307*d8634badSDavid van Moolenbroekregular file
308*d8634badSDavid van Moolenbroek.Nm
309*d8634badSDavid van Moolenbroekalgorithm, producing a change list,
310*d8634badSDavid van Moolenbroekon text files which are different.
311*d8634badSDavid van MoolenbroekBinary files which differ,
312*d8634badSDavid van Moolenbroekcommon subdirectories, and files which appear in only one directory
313*d8634badSDavid van Moolenbroekare described as such.
314*d8634badSDavid van MoolenbroekIn directory mode only regular files and directories are compared.
315*d8634badSDavid van MoolenbroekIf a non-regular file such as a device special file or
316*d8634badSDavid van Moolenbroek.Tn FIFO
317*d8634badSDavid van Moolenbroekis encountered, a diagnostic message is printed.
318*d8634badSDavid van Moolenbroek.Pp
319*d8634badSDavid van MoolenbroekIf only one of
320*d8634badSDavid van Moolenbroek.Ar file1
321*d8634badSDavid van Moolenbroekand
322*d8634badSDavid van Moolenbroek.Ar file2
323*d8634badSDavid van Moolenbroekis a directory,
324*d8634badSDavid van Moolenbroek.Nm
325*d8634badSDavid van Moolenbroekis applied to the non-directory file and the file contained in
326*d8634badSDavid van Moolenbroekthe directory file with a filename that is the same as the
327*d8634badSDavid van Moolenbroeklast component of the non-directory file.
328*d8634badSDavid van Moolenbroek.Pp
329*d8634badSDavid van MoolenbroekIf either
330*d8634badSDavid van Moolenbroek.Ar file1
331*d8634badSDavid van Moolenbroekor
332*d8634badSDavid van Moolenbroek.Ar file2
333*d8634badSDavid van Moolenbroekis
334*d8634badSDavid van Moolenbroek.Sq Fl ,
335*d8634badSDavid van Moolenbroekthe standard input is
336*d8634badSDavid van Moolenbroekused in its place.
337*d8634badSDavid van Moolenbroek.Ss Output Style
338*d8634badSDavid van MoolenbroekThe default (without
339*d8634badSDavid van Moolenbroek.Fl e ,
340*d8634badSDavid van Moolenbroek.Fl c ,
341*d8634badSDavid van Moolenbroekor
342*d8634badSDavid van Moolenbroek.Fl n
343*d8634badSDavid van Moolenbroek.\" -C
344*d8634badSDavid van Moolenbroekoptions)
345*d8634badSDavid van Moolenbroekoutput contains lines of these forms, where
346*d8634badSDavid van Moolenbroek.Va XX , YY , ZZ , QQ
347*d8634badSDavid van Moolenbroekare line numbers respective of file order.
348*d8634badSDavid van Moolenbroek.Pp
349*d8634badSDavid van Moolenbroek.Bl -tag -width "XX,YYcZZ,QQ" -compact
350*d8634badSDavid van Moolenbroek.It Li XX Ns Ic a Ns Li YY
351*d8634badSDavid van MoolenbroekAt (the end of) line
352*d8634badSDavid van Moolenbroek.Va XX
353*d8634badSDavid van Moolenbroekof
354*d8634badSDavid van Moolenbroek.Ar file1 ,
355*d8634badSDavid van Moolenbroekappend the contents
356*d8634badSDavid van Moolenbroekof line
357*d8634badSDavid van Moolenbroek.Va YY
358*d8634badSDavid van Moolenbroekof
359*d8634badSDavid van Moolenbroek.Ar file2
360*d8634badSDavid van Moolenbroekto make them equal.
361*d8634badSDavid van Moolenbroek.It Li XX Ns Ic a Ns Li YY,ZZ
362*d8634badSDavid van MoolenbroekSame as above, but append the range of lines,
363*d8634badSDavid van Moolenbroek.Va YY
364*d8634badSDavid van Moolenbroekthrough
365*d8634badSDavid van Moolenbroek.Va ZZ
366*d8634badSDavid van Moolenbroekof
367*d8634badSDavid van Moolenbroek.Ar file2
368*d8634badSDavid van Moolenbroekto line
369*d8634badSDavid van Moolenbroek.Va XX
370*d8634badSDavid van Moolenbroekof file1.
371*d8634badSDavid van Moolenbroek.It Li XX Ns Ic d Ns Li YY
372*d8634badSDavid van MoolenbroekAt line
373*d8634badSDavid van Moolenbroek.Va XX
374*d8634badSDavid van Moolenbroekdelete
375*d8634badSDavid van Moolenbroekthe line.
376*d8634badSDavid van MoolenbroekThe value
377*d8634badSDavid van Moolenbroek.Va YY
378*d8634badSDavid van Moolenbroektells to which line the change would bring
379*d8634badSDavid van Moolenbroek.Ar file1
380*d8634badSDavid van Moolenbroekin line with
381*d8634badSDavid van Moolenbroek.Ar file1 .
382*d8634badSDavid van Moolenbroek.It Li XX,YY Ns Ic d Ns Li ZZ
383*d8634badSDavid van MoolenbroekDelete the range of lines
384*d8634badSDavid van Moolenbroek.Va XX
385*d8634badSDavid van Moolenbroekthrough
386*d8634badSDavid van Moolenbroek.Va YY
387*d8634badSDavid van Moolenbroekin
388*d8634badSDavid van Moolenbroek.Ar file1 .
389*d8634badSDavid van Moolenbroek.It Li XX Ns Ic c Ns Li YY
390*d8634badSDavid van MoolenbroekChange the line
391*d8634badSDavid van Moolenbroek.Va XX
392*d8634badSDavid van Moolenbroekin
393*d8634badSDavid van Moolenbroek.Ar file1
394*d8634badSDavid van Moolenbroekto the line
395*d8634badSDavid van Moolenbroek.Va YY
396*d8634badSDavid van Moolenbroekin
397*d8634badSDavid van Moolenbroek.Ar file2 .
398*d8634badSDavid van Moolenbroek.It Li XX,YY Ns Ic c Ns Li ZZ
399*d8634badSDavid van MoolenbroekReplace the range of specified lines with the line
400*d8634badSDavid van Moolenbroek.Va ZZ .
401*d8634badSDavid van Moolenbroek.It Li XX,YY Ns Ic c Ns Li ZZ,QQ
402*d8634badSDavid van MoolenbroekReplace the range
403*d8634badSDavid van Moolenbroek.Va XX , Ns Va YY
404*d8634badSDavid van Moolenbroekfrom
405*d8634badSDavid van Moolenbroek.Ar file1
406*d8634badSDavid van Moolenbroekwith the range
407*d8634badSDavid van Moolenbroek.Va ZZ , Ns Va QQ
408*d8634badSDavid van Moolenbroekfrom
409*d8634badSDavid van Moolenbroek.Ar file2 .
410*d8634badSDavid van Moolenbroek.El
411*d8634badSDavid van Moolenbroek.Pp
412*d8634badSDavid van MoolenbroekThese lines resemble
413*d8634badSDavid van Moolenbroek.Xr ed 1
414*d8634badSDavid van Moolenbroeksubcommands to convert
415*d8634badSDavid van Moolenbroek.Ar file1
416*d8634badSDavid van Moolenbroekinto
417*d8634badSDavid van Moolenbroek.Ar file2 .
418*d8634badSDavid van MoolenbroekThe line numbers before the action letters pertain to
419*d8634badSDavid van Moolenbroek.Ar file1 ;
420*d8634badSDavid van Moolenbroekthose after pertain to
421*d8634badSDavid van Moolenbroek.Ar file2 .
422*d8634badSDavid van MoolenbroekThus, by exchanging
423*d8634badSDavid van Moolenbroek.Ic a
424*d8634badSDavid van Moolenbroekfor
425*d8634badSDavid van Moolenbroek.Ic d
426*d8634badSDavid van Moolenbroekand reading the line in reverse order, one can also
427*d8634badSDavid van Moolenbroekdetermine how to convert
428*d8634badSDavid van Moolenbroek.Ar file2
429*d8634badSDavid van Moolenbroekinto
430*d8634badSDavid van Moolenbroek.Ar file1 .
431*d8634badSDavid van MoolenbroekAs in
432*d8634badSDavid van Moolenbroek.Xr ed 1 ,
433*d8634badSDavid van Moolenbroekidentical
434*d8634badSDavid van Moolenbroekpairs (where num1 = num2) are abbreviated as a single
435*d8634badSDavid van Moolenbroeknumber.
436*d8634badSDavid van Moolenbroek.Sh ENVIRONMENT
437*d8634badSDavid van Moolenbroek.Bl -tag -width TMPDIR
438*d8634badSDavid van Moolenbroek.It Ev TMPDIR
439*d8634badSDavid van MoolenbroekIf the environment variable
440*d8634badSDavid van Moolenbroek.Ev TMPDIR
441*d8634badSDavid van Moolenbroekexists,
442*d8634badSDavid van Moolenbroek.Nm
443*d8634badSDavid van Moolenbroekwill use the directory specified by
444*d8634badSDavid van Moolenbroek.Ev TMPDIR
445*d8634badSDavid van Moolenbroekas the temporary directory.
446*d8634badSDavid van Moolenbroek.El
447*d8634badSDavid van Moolenbroek.Sh FILES
448*d8634badSDavid van Moolenbroek.Bl -tag -width /tmp/diff.XXXXXXXX -compact
449*d8634badSDavid van Moolenbroek.It Pa /tmp/diff. Ns Ar XXXXXXXX
450*d8634badSDavid van MoolenbroekTemporary file used when comparing a device or the standard input.
451*d8634badSDavid van MoolenbroekNote that the temporary file is unlinked as soon as it is created
452*d8634badSDavid van Moolenbroekso it will not show up in a directory listing.
453*d8634badSDavid van Moolenbroek.El
454*d8634badSDavid van Moolenbroek.Sh DIAGNOSTICS
455*d8634badSDavid van MoolenbroekThe
456*d8634badSDavid van Moolenbroek.Nm
457*d8634badSDavid van Moolenbroekutility exits with one of the following values:
458*d8634badSDavid van Moolenbroek.Pp
459*d8634badSDavid van Moolenbroek.Bl -tag -width Ds -compact -offset indent
460*d8634badSDavid van Moolenbroek.It 0
461*d8634badSDavid van MoolenbroekNo differences were found.
462*d8634badSDavid van Moolenbroek.It 1
463*d8634badSDavid van MoolenbroekDifferences were found.
464*d8634badSDavid van Moolenbroek.It \*(Gt1
465*d8634badSDavid van MoolenbroekAn error occurred.
466*d8634badSDavid van Moolenbroek.El
467*d8634badSDavid van Moolenbroek.Sh SEE ALSO
468*d8634badSDavid van Moolenbroek.Xr cmp 1 ,
469*d8634badSDavid van Moolenbroek.Xr comm 1 ,
470*d8634badSDavid van Moolenbroek.Xr diff3 1 ,
471*d8634badSDavid van Moolenbroek.Xr ed 1 ,
472*d8634badSDavid van Moolenbroek.Xr pr 1 ,
473*d8634badSDavid van Moolenbroek.Xr sdiff 1 ,
474*d8634badSDavid van Moolenbroek.Xr fnmatch 3 ,
475*d8634badSDavid van Moolenbroek.Xr re_format 7
476*d8634badSDavid van Moolenbroek.Sh STANDARDS
477*d8634badSDavid van MoolenbroekThe
478*d8634badSDavid van Moolenbroek.Nm
479*d8634badSDavid van Moolenbroekutility is compliant with the
480*d8634badSDavid van Moolenbroek.St -p1003.1-2008
481*d8634badSDavid van Moolenbroekspecification.
482*d8634badSDavid van Moolenbroek.Pp
483*d8634badSDavid van MoolenbroekThe flags
484*d8634badSDavid van Moolenbroek.Op Fl aDdIiLlNnPpqSsTtwXx
485*d8634badSDavid van Moolenbroekare extensions to that specification.
486*d8634badSDavid van Moolenbroek.Sh HISTORY
487*d8634badSDavid van MoolenbroekA
488*d8634badSDavid van Moolenbroek.Nm
489*d8634badSDavid van Moolenbroekcommand appeared in
490*d8634badSDavid van Moolenbroek.At v6 .
491*d8634badSDavid van Moolenbroek.Sh BUGS
492*d8634badSDavid van MoolenbroekWhen comparing directories with the
493*d8634badSDavid van Moolenbroek.Fl b ,
494*d8634badSDavid van Moolenbroek.Fl w
495*d8634badSDavid van Moolenbroekor
496*d8634badSDavid van Moolenbroek.Fl i
497*d8634badSDavid van Moolenbroekoptions specified,
498*d8634badSDavid van Moolenbroek.Nm
499*d8634badSDavid van Moolenbroekfirst compares the files ala
500*d8634badSDavid van Moolenbroek.Xr cmp 1 ,
501*d8634badSDavid van Moolenbroekand then decides to run the
502*d8634badSDavid van Moolenbroek.Nm
503*d8634badSDavid van Moolenbroekalgorithm if they are not equal.
504*d8634badSDavid van MoolenbroekThis may cause a small amount of spurious output if the files
505*d8634badSDavid van Moolenbroekthen turn out to be identical because the only differences are
506*d8634badSDavid van Moolenbroekinsignificant whitespace or case differences.
507