xref: /freebsd-13.1/usr.bin/diff/diff.1 (revision 204fa3b0)
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.\" $FreeBSD$
323bbe3f67SBaptiste Daroussin.\"
33*204fa3b0SFernando Apesteguía.Dd June 19, 2020
343bbe3f67SBaptiste Daroussin.Dt DIFF 1
353bbe3f67SBaptiste Daroussin.Os
363bbe3f67SBaptiste Daroussin.Sh NAME
373bbe3f67SBaptiste Daroussin.Nm diff
383bbe3f67SBaptiste Daroussin.Nd differential file and directory comparator
393bbe3f67SBaptiste Daroussin.Sh SYNOPSIS
403bbe3f67SBaptiste Daroussin.Nm diff
41e68edb8cSKyle Evans.Op Fl aBbdipTtw
423bbe3f67SBaptiste Daroussin.Oo
433bbe3f67SBaptiste Daroussin.Fl c | e | f |
4464793e74SBaptiste Daroussin.Fl n | q | u | y
453bbe3f67SBaptiste Daroussin.Oc
467dacb9e7SEnji Cooper.Op Fl -brief
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
5678b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
573bbe3f67SBaptiste Daroussin.Op Fl -normal
587dacb9e7SEnji Cooper.Op Fl -rcs
597dacb9e7SEnji Cooper.Op Fl -show-c-function
607dacb9e7SEnji Cooper.Op Fl -starting-file
61a077708dSBaptiste Daroussin.Op Fl -speed-large-files
623bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
6343fbd654SKyle Evans.Op Fl -tabsize Ar number
647dacb9e7SEnji Cooper.Op Fl -text
657dacb9e7SEnji Cooper.Op Fl -unified
667dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
677dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
683bbe3f67SBaptiste Daroussin.Ar file1 file2
693bbe3f67SBaptiste Daroussin.Nm diff
70e68edb8cSKyle Evans.Op Fl aBbdilpTtw
717dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
727dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
737dacb9e7SEnji Cooper.Op Fl -brief
74fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
757dacb9e7SEnji Cooper.Op Fl -ed
767dacb9e7SEnji Cooper.Op Fl -expand-tabs
777dacb9e7SEnji Cooper.Op Fl -forward-ed
787dacb9e7SEnji Cooper.Op Fl -ignore-all-space
793bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
807dacb9e7SEnji Cooper.Op Fl -ignore-space-change
817dacb9e7SEnji Cooper.Op Fl -initial-tab
827dacb9e7SEnji Cooper.Op Fl -minimal
8378b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
843bbe3f67SBaptiste Daroussin.Op Fl -normal
857dacb9e7SEnji Cooper.Op Fl -paginate
867dacb9e7SEnji Cooper.Op Fl -rcs
877dacb9e7SEnji Cooper.Op Fl -show-c-function
88a077708dSBaptiste Daroussin.Op Fl -speed-large-files
897dacb9e7SEnji Cooper.Op Fl -starting-file
903bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
9143fbd654SKyle Evans.Op Fl -tabsize Ar number
927dacb9e7SEnji Cooper.Op Fl -text
937dacb9e7SEnji Cooper.Fl C Ar number | -context Ar number
943bbe3f67SBaptiste Daroussin.Ar file1 file2
953bbe3f67SBaptiste Daroussin.Nm diff
96e68edb8cSKyle Evans.Op Fl aBbdiltw
977dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
987dacb9e7SEnji Cooper.Op Fl -brief
99fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1007dacb9e7SEnji Cooper.Op Fl -ed
1017dacb9e7SEnji Cooper.Op Fl -expand-tabs
1027dacb9e7SEnji Cooper.Op Fl -forward-ed
1037dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1043bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1057dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1067dacb9e7SEnji Cooper.Op Fl -initial-tab
1077dacb9e7SEnji Cooper.Op Fl -minimal
10878b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1093bbe3f67SBaptiste Daroussin.Op Fl -normal
1107dacb9e7SEnji Cooper.Op Fl -paginate
1117dacb9e7SEnji Cooper.Op Fl -rcs
1127dacb9e7SEnji Cooper.Op Fl -show-c-function
113a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1147dacb9e7SEnji Cooper.Op Fl -starting-file
1153bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
11643fbd654SKyle Evans.Op Fl -tabsize Ar number
1177dacb9e7SEnji Cooper.Op Fl -text
1187dacb9e7SEnji Cooper.Fl D Ar string | Fl -ifdef Ar string
1193bbe3f67SBaptiste Daroussin.Ar file1 file2
1203bbe3f67SBaptiste Daroussin.Nm diff
121e68edb8cSKyle Evans.Op Fl aBbdilpTtw
1227dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
1237dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
1247dacb9e7SEnji Cooper.Op Fl -brief
125fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1267dacb9e7SEnji Cooper.Op Fl -ed
1277dacb9e7SEnji Cooper.Op Fl -expand-tabs
1287dacb9e7SEnji Cooper.Op Fl -forward-ed
1297dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1303bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1317dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1327dacb9e7SEnji Cooper.Op Fl -initial-tab
1337dacb9e7SEnji Cooper.Op Fl -minimal
13478b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1353bbe3f67SBaptiste Daroussin.Op Fl -normal
1367dacb9e7SEnji Cooper.Op Fl -paginate
1377dacb9e7SEnji Cooper.Op Fl -rcs
1387dacb9e7SEnji Cooper.Op Fl -show-c-function
139a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1407dacb9e7SEnji Cooper.Op Fl -starting-file
1413bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr
14243fbd654SKyle Evans.Op Fl -tabsize Ar number
1437dacb9e7SEnji Cooper.Op Fl -text
1447dacb9e7SEnji Cooper.Fl U Ar number | Fl -unified Ar number
1453bbe3f67SBaptiste Daroussin.Ar file1 file2
1463bbe3f67SBaptiste Daroussin.Nm diff
147e68edb8cSKyle Evans.Op Fl aBbdilNPprsTtw
1483bbe3f67SBaptiste Daroussin.Oo
1493bbe3f67SBaptiste Daroussin.Fl c | e | f |
1503bbe3f67SBaptiste Daroussin.Fl n | q | u
1513bbe3f67SBaptiste Daroussin.Oc
1527dacb9e7SEnji Cooper.Op Fl -brief
153fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT
1547dacb9e7SEnji Cooper.Op Fl -context
1557dacb9e7SEnji Cooper.Op Fl -ed
1567dacb9e7SEnji Cooper.Op Fl -expand-tabs
1577dacb9e7SEnji Cooper.Op Fl -forward-ed
1587dacb9e7SEnji Cooper.Op Fl -ignore-all-space
1593bbe3f67SBaptiste Daroussin.Op Fl -ignore-case
1607dacb9e7SEnji Cooper.Op Fl -ignore-space-change
1617dacb9e7SEnji Cooper.Op Fl -initial-tab
1627dacb9e7SEnji Cooper.Op Fl -minimal
1637dacb9e7SEnji Cooper.Op Fl -new-file
16478b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case
1653bbe3f67SBaptiste Daroussin.Op Fl -normal
1667dacb9e7SEnji Cooper.Op Fl -paginate
1677dacb9e7SEnji Cooper.Op Fl -rcs
1687dacb9e7SEnji Cooper.Op Fl -recursive
1697dacb9e7SEnji Cooper.Op Fl -report-identical-files
1707dacb9e7SEnji Cooper.Op Fl -show-c-function
171a077708dSBaptiste Daroussin.Op Fl -speed-large-files
1729ba27624SEnji Cooper.Op Fl -strip-trailing-cr
17343fbd654SKyle Evans.Op Fl -tabsize Ar number
1747dacb9e7SEnji Cooper.Op Fl -text
1757dacb9e7SEnji Cooper.Op Fl -unidirectional-new-file
1767dacb9e7SEnji Cooper.Op Fl -unified
1777dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
1783bbe3f67SBaptiste Daroussin.Bk -words
1797dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label
1807dacb9e7SEnji Cooper.Op Fl S Ar name | Fl -starting-file Ar name
1817dacb9e7SEnji Cooper.Op Fl X Ar file | Fl -exclude-from Ar file
1827dacb9e7SEnji Cooper.Op Fl x Ar pattern | Fl -exclude Ar pattern
1833bbe3f67SBaptiste Daroussin.Ek
1843bbe3f67SBaptiste Daroussin.Ar dir1 dir2
18564793e74SBaptiste Daroussin.Nm diff
18664793e74SBaptiste Daroussin.Op Fl aBbditwW
187469635f6SMateusz Piotrowski.Op Fl -expand-tabs
188469635f6SMateusz Piotrowski.Op Fl -ignore-all-blanks
189469635f6SMateusz Piotrowski.Op Fl -ignore-blank-lines
190469635f6SMateusz Piotrowski.Op Fl -ignore-case
191469635f6SMateusz Piotrowski.Op Fl -minimal
192469635f6SMateusz Piotrowski.Op Fl -no-ignore-file-name-case
193469635f6SMateusz Piotrowski.Op Fl -strip-trailing-cr
194469635f6SMateusz Piotrowski.Op Fl -suppress-common-lines
19543fbd654SKyle Evans.Op Fl -tabsize Ar number
196469635f6SMateusz Piotrowski.Op Fl -text
197469635f6SMateusz Piotrowski.Op Fl -width
19864793e74SBaptiste Daroussin.Fl y | Fl -side-by-side
19964793e74SBaptiste Daroussin.Ar file1 file2
2003bbe3f67SBaptiste Daroussin.Sh DESCRIPTION
2013bbe3f67SBaptiste DaroussinThe
2023bbe3f67SBaptiste Daroussin.Nm
2033bbe3f67SBaptiste Daroussinutility compares the contents of
2043bbe3f67SBaptiste Daroussin.Ar file1
2053bbe3f67SBaptiste Daroussinand
2063bbe3f67SBaptiste Daroussin.Ar file2
2073bbe3f67SBaptiste Daroussinand writes to the standard output the list of changes necessary to
2083bbe3f67SBaptiste Daroussinconvert one file into the other.
2093bbe3f67SBaptiste DaroussinNo output is produced if the files are identical.
2103bbe3f67SBaptiste Daroussin.Pp
2113bbe3f67SBaptiste DaroussinOutput options (mutually exclusive):
2123bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
213bcf91ad6SBaptiste Daroussin.It Fl C Ar number Fl -context Ar number
2143bbe3f67SBaptiste DaroussinLike
2153bbe3f67SBaptiste Daroussin.Fl c
2163bbe3f67SBaptiste Daroussinbut produces a diff with
2173bbe3f67SBaptiste Daroussin.Ar number
2183bbe3f67SBaptiste Daroussinlines of context.
2193bbe3f67SBaptiste Daroussin.It Fl c
2203bbe3f67SBaptiste DaroussinProduces a diff with 3 lines of context.
2213bbe3f67SBaptiste DaroussinWith
2223bbe3f67SBaptiste Daroussin.Fl c
2233bbe3f67SBaptiste Daroussinthe output format is modified slightly:
2243bbe3f67SBaptiste Daroussinthe output begins with identification of the files involved and
2253bbe3f67SBaptiste Daroussintheir creation dates and then each change is separated
2263bbe3f67SBaptiste Daroussinby a line with fifteen
2273bbe3f67SBaptiste Daroussin.Li * Ns 's .
2283bbe3f67SBaptiste DaroussinThe lines removed from
2293bbe3f67SBaptiste Daroussin.Ar file1
2303bbe3f67SBaptiste Daroussinare marked with
2313bbe3f67SBaptiste Daroussin.Sq \&-\ \& ;
2323bbe3f67SBaptiste Daroussinthose added to
2333bbe3f67SBaptiste Daroussin.Ar file2
2343bbe3f67SBaptiste Daroussinare marked
23579208b10SBaptiste Daroussin.Sq +\ \& .
2363bbe3f67SBaptiste DaroussinLines which are changed from one file to the other are marked in
2373bbe3f67SBaptiste Daroussinboth files with
2383bbe3f67SBaptiste Daroussin.Sq !\ \& .
2393bbe3f67SBaptiste DaroussinChanges which lie within 3 lines of each other are grouped together on
2403bbe3f67SBaptiste Daroussinoutput.
241bcf91ad6SBaptiste Daroussin.It Fl D Ar string Fl -ifdef Ar string
2423bbe3f67SBaptiste DaroussinCreates a merged version of
2433bbe3f67SBaptiste Daroussin.Ar file1
2443bbe3f67SBaptiste Daroussinand
2453bbe3f67SBaptiste Daroussin.Ar file2
2463bbe3f67SBaptiste Daroussinon the standard output, with C preprocessor controls included so that
2473bbe3f67SBaptiste Daroussina compilation of the result without defining
2483bbe3f67SBaptiste Daroussin.Ar string
2493bbe3f67SBaptiste Daroussinis equivalent to compiling
2503bbe3f67SBaptiste Daroussin.Ar file1 ,
2513bbe3f67SBaptiste Daroussinwhile defining
2523bbe3f67SBaptiste Daroussin.Ar string
2533bbe3f67SBaptiste Daroussinwill yield
2543bbe3f67SBaptiste Daroussin.Ar file2 .
255bcf91ad6SBaptiste Daroussin.It Fl e -ed
2563bbe3f67SBaptiste DaroussinProduces output in a form suitable as input for the editor utility,
2573bbe3f67SBaptiste Daroussin.Xr ed 1 ,
2583bbe3f67SBaptiste Daroussinwhich can then be used to convert file1 into file2.
2593bbe3f67SBaptiste Daroussin.Pp
2603bbe3f67SBaptiste DaroussinExtra commands are added to the output when comparing directories with
2613bbe3f67SBaptiste Daroussin.Fl e ,
2623bbe3f67SBaptiste Daroussinso that the result is a
2633bbe3f67SBaptiste Daroussin.Xr sh 1
2643bbe3f67SBaptiste Daroussinscript for converting text files which are common to the two directories
2653bbe3f67SBaptiste Daroussinfrom their state in
2663bbe3f67SBaptiste Daroussin.Ar dir1
2673bbe3f67SBaptiste Daroussinto their state in
2683bbe3f67SBaptiste Daroussin.Ar dir2 .
269bcf91ad6SBaptiste Daroussin.It Fl f -forward-ed
2703bbe3f67SBaptiste DaroussinIdentical output to that of the
2713bbe3f67SBaptiste Daroussin.Fl e
2723bbe3f67SBaptiste Daroussinflag, but in reverse order.
2733bbe3f67SBaptiste DaroussinIt cannot be digested by
2743bbe3f67SBaptiste Daroussin.Xr ed 1 .
2753bbe3f67SBaptiste Daroussin.It Fl n
2763bbe3f67SBaptiste DaroussinProduces a script similar to that of
2773bbe3f67SBaptiste Daroussin.Fl e ,
2783bbe3f67SBaptiste Daroussinbut in the opposite order and with a count of changed lines on each
2793bbe3f67SBaptiste Daroussininsert or delete command.
280*204fa3b0SFernando ApesteguíaThis is the form used by rcsdiff.
281bcf91ad6SBaptiste Daroussin.It Fl q -brief
2823bbe3f67SBaptiste DaroussinJust print a line when the files differ.
2833bbe3f67SBaptiste DaroussinDoes not output a list of changes.
284bcf91ad6SBaptiste Daroussin.It Fl U Ar number Fl -unified Ar number
2853bbe3f67SBaptiste DaroussinLike
2863bbe3f67SBaptiste Daroussin.Fl u
2873bbe3f67SBaptiste Daroussinbut produces a diff with
2883bbe3f67SBaptiste Daroussin.Ar number
2893bbe3f67SBaptiste Daroussinlines of context.
2903bbe3f67SBaptiste Daroussin.It Fl u
2913bbe3f67SBaptiste DaroussinProduces a
2923bbe3f67SBaptiste Daroussin.Em unified
2933bbe3f67SBaptiste Daroussindiff with 3 lines of context.
2943bbe3f67SBaptiste DaroussinA unified diff is similar to the context diff produced by the
2953bbe3f67SBaptiste Daroussin.Fl c
2963bbe3f67SBaptiste Daroussinoption.
2973bbe3f67SBaptiste DaroussinHowever, unlike with
2983bbe3f67SBaptiste Daroussin.Fl c ,
2993bbe3f67SBaptiste Daroussinall lines to be changed (added and/or removed) are present in
3003bbe3f67SBaptiste Daroussina single section.
30164793e74SBaptiste Daroussin.It Fl y Fl -side-by-side
30279208b10SBaptiste DaroussinOutput in two columns with a marker between them.
30379208b10SBaptiste DaroussinThe marker can be one
30464793e74SBaptiste Daroussinof the following:
30564793e74SBaptiste Daroussin.Pp
30664793e74SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact
30764793e74SBaptiste Daroussin.It space
30864793e74SBaptiste DaroussinCorresponding lines are identical.
30964793e74SBaptiste Daroussin.It '|'
31064793e74SBaptiste DaroussinCorresponding lines are different.
31164793e74SBaptiste Daroussin.It '<'
31264793e74SBaptiste DaroussinFiles differ and only the first file contains the line.
31364793e74SBaptiste Daroussin.It '>'
31464793e74SBaptiste DaroussinFiles differ and only the second file contains the line.
31564793e74SBaptiste Daroussin.El
3163bbe3f67SBaptiste Daroussin.El
3173bbe3f67SBaptiste Daroussin.Pp
3183bbe3f67SBaptiste DaroussinComparison options:
3193bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
320bcf91ad6SBaptiste Daroussin.It Fl a -text
32179208b10SBaptiste DaroussinTreat all files as ASCII text.
3223bbe3f67SBaptiste DaroussinNormally
3233bbe3f67SBaptiste Daroussin.Nm
3243bbe3f67SBaptiste Daroussinwill simply print
3253bbe3f67SBaptiste Daroussin.Dq Binary files ... differ
3263bbe3f67SBaptiste Daroussinif files contain binary characters.
3273bbe3f67SBaptiste DaroussinUse of this option forces
3283bbe3f67SBaptiste Daroussin.Nm
3293bbe3f67SBaptiste Daroussinto produce a diff.
330e68edb8cSKyle Evans.It Fl B Fl -ignore-blank-lines
331e68edb8cSKyle EvansCauses chunks that include only blank lines to be ignored.
3328ccef193SBaptiste Daroussin.It Fl b -ignore-space-change
3333bbe3f67SBaptiste DaroussinCauses trailing blanks (spaces and tabs) to be ignored, and other
3343bbe3f67SBaptiste Daroussinstrings of blanks to compare equal.
335bcf91ad6SBaptiste Daroussin.It Fl d -minimal
3363bbe3f67SBaptiste DaroussinTry very hard to produce a diff as small as possible.
3373bbe3f67SBaptiste DaroussinThis may consume a lot of processing power and memory when processing
3383bbe3f67SBaptiste Daroussinlarge files with many changes.
339bcf91ad6SBaptiste Daroussin.It Fl I Ar pattern Fl -ignore-matching-lines Ar pattern
3403bbe3f67SBaptiste DaroussinIgnores changes, insertions, and deletions whose lines match the
3413bbe3f67SBaptiste Daroussinextended regular expression
3423bbe3f67SBaptiste Daroussin.Ar pattern .
3433bbe3f67SBaptiste DaroussinMultiple
3443bbe3f67SBaptiste Daroussin.Fl I
3453bbe3f67SBaptiste Daroussinpatterns may be specified.
3463bbe3f67SBaptiste DaroussinAll lines in the change must match some pattern for the change to be
3473bbe3f67SBaptiste Daroussinignored.
3483bbe3f67SBaptiste DaroussinSee
3493bbe3f67SBaptiste Daroussin.Xr re_format 7
3503bbe3f67SBaptiste Daroussinfor more information on regular expression patterns.
351bcf91ad6SBaptiste Daroussin.It Fl i -ignore-case
3523bbe3f67SBaptiste DaroussinIgnores the case of letters.
3533bbe3f67SBaptiste DaroussinE.g.,
3543bbe3f67SBaptiste Daroussin.Dq A
3553bbe3f67SBaptiste Daroussinwill compare equal to
3563bbe3f67SBaptiste Daroussin.Dq a .
357bcf91ad6SBaptiste Daroussin.It Fl l -paginate
3583bbe3f67SBaptiste DaroussinPass the output through
3593bbe3f67SBaptiste Daroussin.Xr pr 1
3603bbe3f67SBaptiste Daroussinto paginate it.
361bcf91ad6SBaptiste Daroussin.It Fl L Ar label Fl -label Ar label
3623bbe3f67SBaptiste DaroussinPrint
3633bbe3f67SBaptiste Daroussin.Ar label
3643bbe3f67SBaptiste Daroussininstead of the first (and second, if this option is specified twice)
3653bbe3f67SBaptiste Daroussinfile name and time in the context or unified diff header.
366bcf91ad6SBaptiste Daroussin.It Fl p -show-c-function
3673bbe3f67SBaptiste DaroussinWith unified and context diffs, show with each change
3683bbe3f67SBaptiste Daroussinthe first 40 characters of the last line before the context beginning
3693bbe3f67SBaptiste Daroussinwith a letter, an underscore or a dollar sign.
3703bbe3f67SBaptiste DaroussinFor C source code following standard layout conventions, this will
3713bbe3f67SBaptiste Daroussinshow the prototype of the function the change applies to.
372bcf91ad6SBaptiste Daroussin.It Fl T -initial-tab
3733bbe3f67SBaptiste DaroussinPrint a tab rather than a space before the rest of the line for the
3743bbe3f67SBaptiste Daroussinnormal, context or unified output formats.
3753bbe3f67SBaptiste DaroussinThis makes the alignment of tabs in the line consistent.
376bcf91ad6SBaptiste Daroussin.It Fl t -expand-tabs
3773bbe3f67SBaptiste DaroussinWill expand tabs in output lines.
3783bbe3f67SBaptiste DaroussinNormal or
3793bbe3f67SBaptiste Daroussin.Fl c
3803bbe3f67SBaptiste Daroussinoutput adds character(s) to the front of each line which may screw up
3813bbe3f67SBaptiste Daroussinthe indentation of the original source lines and make the output listing
3823bbe3f67SBaptiste Daroussindifficult to interpret.
3833bbe3f67SBaptiste DaroussinThis option will preserve the original source's indentation.
384bcf91ad6SBaptiste Daroussin.It Fl w -ignore-all-blanks
3853bbe3f67SBaptiste DaroussinIs similar to
386bcf91ad6SBaptiste Daroussin.Fl b -ignore-space-change
3873bbe3f67SBaptiste Daroussinbut causes whitespace (blanks and tabs) to be totally ignored.
3883bbe3f67SBaptiste DaroussinE.g.,
3893bbe3f67SBaptiste Daroussin.Dq if (\ \&a == b \&)
3903bbe3f67SBaptiste Daroussinwill compare equal to
3913bbe3f67SBaptiste Daroussin.Dq if(a==b) .
39264793e74SBaptiste Daroussin.It Fl W Ar number Fl -width Ar number
39364793e74SBaptiste DaroussinOutput at most
39464793e74SBaptiste Daroussin.Ar number
39579208b10SBaptiste Daroussincolumns when using side by side format.
39679208b10SBaptiste DaroussinThe default value is 130.
397fddcb7b8SBaptiste Daroussin.It Fl -changed-group-format Ar GFMT
398fddcb7b8SBaptiste DaroussinFormat input groups in the provided
399fddcb7b8SBaptiste Daroussin.Pp
400fddcb7b8SBaptiste Daroussinthe format is a string with special keywords:
401fddcb7b8SBaptiste Daroussin.Bl -tag -width %<
402fddcb7b8SBaptiste Daroussin.It %<
403fddcb7b8SBaptiste Daroussinlines from FILE1
404fddcb7b8SBaptiste Daroussin.It %<
405fddcb7b8SBaptiste Daroussinlines from FILE2
406fddcb7b8SBaptiste Daroussin.El
407bcf91ad6SBaptiste Daroussin.It Fl -ignore-file-name-case
408bcf91ad6SBaptiste Daroussinignore case when comparing file names
409bcf91ad6SBaptiste Daroussin.It Fl -no-ignore-file-name-case
410bcf91ad6SBaptiste Daroussindo not ignore case wen comparing file names (default)
411bcf91ad6SBaptiste Daroussin.It Fl -normal
412bcf91ad6SBaptiste Daroussindefault diff output
413bcf91ad6SBaptiste Daroussin.It Fl -speed-large-files
414bcf91ad6SBaptiste Daroussinstub option for compatibility with GNU diff
415bcf91ad6SBaptiste Daroussin.It Fl -strip-trailing-cr
416bcf91ad6SBaptiste Daroussinstrip carriage return on input files
41764793e74SBaptiste Daroussin.It Fl -suppress-common-lines
41864793e74SBaptiste DaroussinDo not output common lines when using the side by side format
41964793e74SBaptiste Daroussin.It Fl -tabsize Ar number
420bcf91ad6SBaptiste DaroussinNumber of spaces representing a tab (default 8)
4213bbe3f67SBaptiste Daroussin.El
4223bbe3f67SBaptiste Daroussin.Pp
4233bbe3f67SBaptiste DaroussinDirectory comparison options:
4243bbe3f67SBaptiste Daroussin.Bl -tag -width Ds
425bcf91ad6SBaptiste Daroussin.It Fl N -new-file
4263bbe3f67SBaptiste DaroussinIf a file is found in only one directory, act as if it was found in the
4273bbe3f67SBaptiste Daroussinother directory too but was of zero size.
428bcf91ad6SBaptiste Daroussin.It Fl P -unidirectional-new-file
4293bbe3f67SBaptiste DaroussinIf a file is found only in
4303bbe3f67SBaptiste Daroussin.Ar dir2 ,
4313bbe3f67SBaptiste Daroussinact as if it was found in
4323bbe3f67SBaptiste Daroussin.Ar dir1
4333bbe3f67SBaptiste Daroussintoo but was of zero size.
434bcf91ad6SBaptiste Daroussin.It Fl r -recursive
4353bbe3f67SBaptiste DaroussinCauses application of
4363bbe3f67SBaptiste Daroussin.Nm
4373bbe3f67SBaptiste Daroussinrecursively to common subdirectories encountered.
438bcf91ad6SBaptiste Daroussin.It Fl S Ar name Fl -starting-file Ar name
4393bbe3f67SBaptiste DaroussinRe-starts a directory
4403bbe3f67SBaptiste Daroussin.Nm
4413bbe3f67SBaptiste Daroussinin the middle, beginning with file
4423bbe3f67SBaptiste Daroussin.Ar name .
443bcf91ad6SBaptiste Daroussin.It Fl s -report-identical-files
4443bbe3f67SBaptiste DaroussinCauses
4453bbe3f67SBaptiste Daroussin.Nm
4463bbe3f67SBaptiste Daroussinto report files which are the same, which are otherwise not mentioned.
447bcf91ad6SBaptiste Daroussin.It Fl X Ar file Fl -exclude-from Ar file
4483bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match
4493bbe3f67SBaptiste Daroussinlines in
4503bbe3f67SBaptiste Daroussin.Ar file .
4513bbe3f67SBaptiste DaroussinMultiple
4523bbe3f67SBaptiste Daroussin.Fl X
4533bbe3f67SBaptiste Daroussinoptions may be specified.
454bcf91ad6SBaptiste Daroussin.It Fl x Ar pattern Fl -exclude Ar pattern
4553bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match
4563bbe3f67SBaptiste Daroussin.Ar pattern .
4573bbe3f67SBaptiste DaroussinPatterns are matched using shell-style globbing via
4583bbe3f67SBaptiste Daroussin.Xr fnmatch 3 .
4593bbe3f67SBaptiste DaroussinMultiple
4603bbe3f67SBaptiste Daroussin.Fl x
4613bbe3f67SBaptiste Daroussinoptions may be specified.
4623bbe3f67SBaptiste Daroussin.El
4633bbe3f67SBaptiste Daroussin.Pp
4643bbe3f67SBaptiste DaroussinIf both arguments are directories,
4653bbe3f67SBaptiste Daroussin.Nm
4663bbe3f67SBaptiste Daroussinsorts the contents of the directories by name, and then runs the
4673bbe3f67SBaptiste Daroussinregular file
4683bbe3f67SBaptiste Daroussin.Nm
4693bbe3f67SBaptiste Daroussinalgorithm, producing a change list,
4703bbe3f67SBaptiste Daroussinon text files which are different.
4713bbe3f67SBaptiste DaroussinBinary files which differ,
4723bbe3f67SBaptiste Daroussincommon subdirectories, and files which appear in only one directory
4733bbe3f67SBaptiste Daroussinare described as such.
4743bbe3f67SBaptiste DaroussinIn directory mode only regular files and directories are compared.
47579208b10SBaptiste DaroussinIf a non-regular file such as a device special file or FIFO is encountered,
47679208b10SBaptiste Daroussina diagnostic message is printed.
4773bbe3f67SBaptiste Daroussin.Pp
4783bbe3f67SBaptiste DaroussinIf only one of
4793bbe3f67SBaptiste Daroussin.Ar file1
4803bbe3f67SBaptiste Daroussinand
4813bbe3f67SBaptiste Daroussin.Ar file2
4823bbe3f67SBaptiste Daroussinis a directory,
4833bbe3f67SBaptiste Daroussin.Nm
4843bbe3f67SBaptiste Daroussinis applied to the non-directory file and the file contained in
4853bbe3f67SBaptiste Daroussinthe directory file with a filename that is the same as the
4863bbe3f67SBaptiste Daroussinlast component of the non-directory file.
4873bbe3f67SBaptiste Daroussin.Pp
4883bbe3f67SBaptiste DaroussinIf either
4893bbe3f67SBaptiste Daroussin.Ar file1
4903bbe3f67SBaptiste Daroussinor
4913bbe3f67SBaptiste Daroussin.Ar file2
4923bbe3f67SBaptiste Daroussinis
4933bbe3f67SBaptiste Daroussin.Sq - ,
4943bbe3f67SBaptiste Daroussinthe standard input is
4953bbe3f67SBaptiste Daroussinused in its place.
4963bbe3f67SBaptiste Daroussin.Ss Output Style
4973bbe3f67SBaptiste DaroussinThe default (without
4983bbe3f67SBaptiste Daroussin.Fl e ,
4993bbe3f67SBaptiste Daroussin.Fl c ,
5003bbe3f67SBaptiste Daroussinor
501bcf91ad6SBaptiste Daroussin.Fl n -rcs
5023bbe3f67SBaptiste Daroussin.\" -C
5033bbe3f67SBaptiste Daroussinoptions)
5043bbe3f67SBaptiste Daroussinoutput contains lines of these forms, where
5053bbe3f67SBaptiste Daroussin.Va XX , YY , ZZ , QQ
5063bbe3f67SBaptiste Daroussinare line numbers respective of file order.
5073bbe3f67SBaptiste Daroussin.Pp
5083bbe3f67SBaptiste Daroussin.Bl -tag -width "XX,YYcZZ,QQ" -compact
5093bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY
5103bbe3f67SBaptiste DaroussinAt (the end of) line
5113bbe3f67SBaptiste Daroussin.Va XX
5123bbe3f67SBaptiste Daroussinof
5133bbe3f67SBaptiste Daroussin.Ar file1 ,
5143bbe3f67SBaptiste Daroussinappend the contents
5153bbe3f67SBaptiste Daroussinof line
5163bbe3f67SBaptiste Daroussin.Va YY
5173bbe3f67SBaptiste Daroussinof
5183bbe3f67SBaptiste Daroussin.Ar file2
5193bbe3f67SBaptiste Daroussinto make them equal.
5203bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY,ZZ
5213bbe3f67SBaptiste DaroussinSame as above, but append the range of lines,
5223bbe3f67SBaptiste Daroussin.Va YY
5233bbe3f67SBaptiste Daroussinthrough
5243bbe3f67SBaptiste Daroussin.Va ZZ
5253bbe3f67SBaptiste Daroussinof
5263bbe3f67SBaptiste Daroussin.Ar file2
5273bbe3f67SBaptiste Daroussinto line
5283bbe3f67SBaptiste Daroussin.Va XX
5293bbe3f67SBaptiste Daroussinof file1.
5303bbe3f67SBaptiste Daroussin.It Li XX Ns Ic d Ns Li YY
5313bbe3f67SBaptiste DaroussinAt line
5323bbe3f67SBaptiste Daroussin.Va XX
5333bbe3f67SBaptiste Daroussindelete
5343bbe3f67SBaptiste Daroussinthe line.
5353bbe3f67SBaptiste DaroussinThe value
5363bbe3f67SBaptiste Daroussin.Va YY
5373bbe3f67SBaptiste Daroussintells to which line the change would bring
5383bbe3f67SBaptiste Daroussin.Ar file1
5393bbe3f67SBaptiste Daroussinin line with
5403bbe3f67SBaptiste Daroussin.Ar file2 .
5413bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic d Ns Li ZZ
5423bbe3f67SBaptiste DaroussinDelete the range of lines
5433bbe3f67SBaptiste Daroussin.Va XX
5443bbe3f67SBaptiste Daroussinthrough
5453bbe3f67SBaptiste Daroussin.Va YY
5463bbe3f67SBaptiste Daroussinin
5473bbe3f67SBaptiste Daroussin.Ar file1 .
5483bbe3f67SBaptiste Daroussin.It Li XX Ns Ic c Ns Li YY
5493bbe3f67SBaptiste DaroussinChange the line
5503bbe3f67SBaptiste Daroussin.Va XX
5513bbe3f67SBaptiste Daroussinin
5523bbe3f67SBaptiste Daroussin.Ar file1
5533bbe3f67SBaptiste Daroussinto the line
5543bbe3f67SBaptiste Daroussin.Va YY
5553bbe3f67SBaptiste Daroussinin
5563bbe3f67SBaptiste Daroussin.Ar file2 .
5573bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ
5583bbe3f67SBaptiste DaroussinReplace the range of specified lines with the line
5593bbe3f67SBaptiste Daroussin.Va ZZ .
5603bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ,QQ
5613bbe3f67SBaptiste DaroussinReplace the range
5623bbe3f67SBaptiste Daroussin.Va XX , Ns Va YY
5633bbe3f67SBaptiste Daroussinfrom
5643bbe3f67SBaptiste Daroussin.Ar file1
5653bbe3f67SBaptiste Daroussinwith the range
5663bbe3f67SBaptiste Daroussin.Va ZZ , Ns Va QQ
5673bbe3f67SBaptiste Daroussinfrom
5683bbe3f67SBaptiste Daroussin.Ar file2 .
5693bbe3f67SBaptiste Daroussin.El
5703bbe3f67SBaptiste Daroussin.Pp
5713bbe3f67SBaptiste DaroussinThese lines resemble
5723bbe3f67SBaptiste Daroussin.Xr ed 1
5733bbe3f67SBaptiste Daroussinsubcommands to convert
5743bbe3f67SBaptiste Daroussin.Ar file1
5753bbe3f67SBaptiste Daroussininto
5763bbe3f67SBaptiste Daroussin.Ar file2 .
5773bbe3f67SBaptiste DaroussinThe line numbers before the action letters pertain to
5783bbe3f67SBaptiste Daroussin.Ar file1 ;
5793bbe3f67SBaptiste Daroussinthose after pertain to
5803bbe3f67SBaptiste Daroussin.Ar file2 .
5813bbe3f67SBaptiste DaroussinThus, by exchanging
5823bbe3f67SBaptiste Daroussin.Ic a
5833bbe3f67SBaptiste Daroussinfor
5843bbe3f67SBaptiste Daroussin.Ic d
5853bbe3f67SBaptiste Daroussinand reading the line in reverse order, one can also
5863bbe3f67SBaptiste Daroussindetermine how to convert
5873bbe3f67SBaptiste Daroussin.Ar file2
5883bbe3f67SBaptiste Daroussininto
5893bbe3f67SBaptiste Daroussin.Ar file1 .
5903bbe3f67SBaptiste DaroussinAs in
5913bbe3f67SBaptiste Daroussin.Xr ed 1 ,
5923bbe3f67SBaptiste Daroussinidentical
5933bbe3f67SBaptiste Daroussinpairs (where num1 = num2) are abbreviated as a single
5943bbe3f67SBaptiste Daroussinnumber.
5953bbe3f67SBaptiste Daroussin.Sh FILES
5963bbe3f67SBaptiste Daroussin.Bl -tag -width /tmp/diff.XXXXXXXX -compact
59779208b10SBaptiste Daroussin.It Pa /tmp/diff.XXXXXXXX
5983bbe3f67SBaptiste DaroussinTemporary file used when comparing a device or the standard input.
5993bbe3f67SBaptiste DaroussinNote that the temporary file is unlinked as soon as it is created
6003bbe3f67SBaptiste Daroussinso it will not show up in a directory listing.
6013bbe3f67SBaptiste Daroussin.El
6023bbe3f67SBaptiste Daroussin.Sh EXIT STATUS
6033bbe3f67SBaptiste DaroussinThe
6043bbe3f67SBaptiste Daroussin.Nm
6053bbe3f67SBaptiste Daroussinutility exits with one of the following values:
6063bbe3f67SBaptiste Daroussin.Pp
6073bbe3f67SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact
6083bbe3f67SBaptiste Daroussin.It 0
6093bbe3f67SBaptiste DaroussinNo differences were found.
6103bbe3f67SBaptiste Daroussin.It 1
6113bbe3f67SBaptiste DaroussinDifferences were found.
6123bbe3f67SBaptiste Daroussin.It >1
6133bbe3f67SBaptiste DaroussinAn error occurred.
6143bbe3f67SBaptiste Daroussin.El
615*204fa3b0SFernando Apesteguía.Sh EXAMPLES
616*204fa3b0SFernando ApesteguíaCompare
617*204fa3b0SFernando Apesteguía.Pa old_dir
618*204fa3b0SFernando Apesteguíaand
619*204fa3b0SFernando Apesteguía.Pa new_dir
620*204fa3b0SFernando Apesteguíarecursively generating an unified diff and treating files found only in one
621*204fa3b0SFernando Apesteguíaof those directories as new files:
622*204fa3b0SFernando Apesteguía.Bd -literal -offset indent
623*204fa3b0SFernando Apesteguía$ diff -ruN /path/to/old_dir /path/to/new_dir
624*204fa3b0SFernando Apesteguía.Ed
625*204fa3b0SFernando Apesteguía.Pp
626*204fa3b0SFernando ApesteguíaSame as above but excluding files matching the expressions
627*204fa3b0SFernando Apesteguía.Dq *.h
628*204fa3b0SFernando Apesteguíaand
629*204fa3b0SFernando Apesteguía.Dq *.c :
630*204fa3b0SFernando Apesteguía.Bd -literal -offset indent
631*204fa3b0SFernando Apesteguía$ diff -ruN -x '*.h' -x '*.c' /path/to/old_dir /path/to/new_dir
632*204fa3b0SFernando Apesteguía.Ed
633*204fa3b0SFernando Apesteguía.Pp
634*204fa3b0SFernando ApesteguíaShow a single line indicating if the files differ:
635*204fa3b0SFernando Apesteguía.Bd -literal -offset indent
636*204fa3b0SFernando Apesteguía$ diff -q /boot/loader.conf /boot/defaults/loader.conf
637*204fa3b0SFernando ApesteguíaFiles /boot/loader.conf and /boot/defaults/loader.conf differ
638*204fa3b0SFernando Apesteguía.Ed
639*204fa3b0SFernando Apesteguía.Pp
640*204fa3b0SFernando ApesteguíaAssuming a file named
641*204fa3b0SFernando Apesteguía.Pa example.txt
642*204fa3b0SFernando Apesteguíawith the following contents:
643*204fa3b0SFernando Apesteguía.Bd -literal -offset indent
644*204fa3b0SFernando ApesteguíaFreeBSD is an operating system
645*204fa3b0SFernando ApesteguíaLinux is a kernel
646*204fa3b0SFernando ApesteguíaOpenBSD is an operating system
647*204fa3b0SFernando Apesteguía.Ed
648*204fa3b0SFernando Apesteguía.Pp
649*204fa3b0SFernando ApesteguíaCompare stdin with
650*204fa3b0SFernando Apesteguía.Pa example.txt
651*204fa3b0SFernando Apesteguíaexcluding from the comparison those lines containing either
652*204fa3b0SFernando Apesteguía.Qq Linux
653*204fa3b0SFernando Apesteguíaor
654*204fa3b0SFernando Apesteguía.Qq Open :
655*204fa3b0SFernando Apesteguía.Bd -literal -offset indent
656*204fa3b0SFernando Apesteguía$ echo "FreeBSD is an operating system" | diff -q -I 'Linux|Open' example.txt -
657*204fa3b0SFernando Apesteguía.Ed
6583bbe3f67SBaptiste Daroussin.Sh SEE ALSO
6593bbe3f67SBaptiste Daroussin.Xr cmp 1 ,
6603bbe3f67SBaptiste Daroussin.Xr comm 1 ,
6613bbe3f67SBaptiste Daroussin.Xr diff3 1 ,
6623bbe3f67SBaptiste Daroussin.Xr ed 1 ,
6633bbe3f67SBaptiste Daroussin.Xr patch 1 ,
664933870f0SBaptiste Daroussin.Xr pr 1 ,
6653bbe3f67SBaptiste Daroussin.Xr sdiff 1
6663bbe3f67SBaptiste Daroussin.Rs
6673bbe3f67SBaptiste Daroussin.%A James W. Hunt
6683bbe3f67SBaptiste Daroussin.%A M. Douglas McIlroy
6693bbe3f67SBaptiste Daroussin.%T "An Algorithm for Differential File Comparison"
6703bbe3f67SBaptiste Daroussin.%J Computing Science Technical Report
6713bbe3f67SBaptiste Daroussin.%Q Bell Laboratories 41
6723bbe3f67SBaptiste Daroussin.%D June 1976
6733bbe3f67SBaptiste Daroussin.Re
6743bbe3f67SBaptiste Daroussin.Sh STANDARDS
6753bbe3f67SBaptiste DaroussinThe
6763bbe3f67SBaptiste Daroussin.Nm
6773bbe3f67SBaptiste Daroussinutility is compliant with the
6783bbe3f67SBaptiste Daroussin.St -p1003.1-2008
6793bbe3f67SBaptiste Daroussinspecification.
6803bbe3f67SBaptiste Daroussin.Pp
6813bbe3f67SBaptiste DaroussinThe flags
682469635f6SMateusz Piotrowski.Op Fl aDdIiLlNnPpqSsTtwXxy
6833bbe3f67SBaptiste Daroussinare extensions to that specification.
6843bbe3f67SBaptiste Daroussin.Sh HISTORY
6853bbe3f67SBaptiste DaroussinA
6863bbe3f67SBaptiste Daroussin.Nm
6873bbe3f67SBaptiste Daroussincommand appeared in
6883bbe3f67SBaptiste Daroussin.At v6 .
689