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.\" 308cf449dbSTom Jones.Dd March 10, 2022 313bbe3f67SBaptiste Daroussin.Dt DIFF 1 323bbe3f67SBaptiste Daroussin.Os 333bbe3f67SBaptiste Daroussin.Sh NAME 343bbe3f67SBaptiste Daroussin.Nm diff 353bbe3f67SBaptiste Daroussin.Nd differential file and directory comparator 363bbe3f67SBaptiste Daroussin.Sh SYNOPSIS 373bbe3f67SBaptiste Daroussin.Nm diff 38e68edb8cSKyle Evans.Op Fl aBbdipTtw 393bbe3f67SBaptiste Daroussin.Oo 403bbe3f67SBaptiste Daroussin.Fl c | e | f | 4164793e74SBaptiste Daroussin.Fl n | q | u | y 423bbe3f67SBaptiste Daroussin.Oc 437dacb9e7SEnji Cooper.Op Fl -brief 44f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 45fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT 467dacb9e7SEnji Cooper.Op Fl -ed 477dacb9e7SEnji Cooper.Op Fl -expand-tabs 487dacb9e7SEnji Cooper.Op Fl -forward-ed 497dacb9e7SEnji Cooper.Op Fl -ignore-all-space 503bbe3f67SBaptiste Daroussin.Op Fl -ignore-case 517dacb9e7SEnji Cooper.Op Fl -ignore-space-change 527dacb9e7SEnji Cooper.Op Fl -initial-tab 537dacb9e7SEnji Cooper.Op Fl -minimal 5478b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case 553bbe3f67SBaptiste Daroussin.Op Fl -normal 567dacb9e7SEnji Cooper.Op Fl -rcs 577dacb9e7SEnji Cooper.Op Fl -show-c-function 587dacb9e7SEnji Cooper.Op Fl -starting-file 59a077708dSBaptiste Daroussin.Op Fl -speed-large-files 603bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr 6143fbd654SKyle Evans.Op Fl -tabsize Ar number 627dacb9e7SEnji Cooper.Op Fl -text 637dacb9e7SEnji Cooper.Op Fl -unified 647dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern 65e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern 667dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label 673bbe3f67SBaptiste Daroussin.Ar file1 file2 683bbe3f67SBaptiste Daroussin.Nm diff 69e68edb8cSKyle Evans.Op Fl aBbdilpTtw 707dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern 71e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern 727dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label 737dacb9e7SEnji Cooper.Op Fl -brief 74f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 75fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT 767dacb9e7SEnji Cooper.Op Fl -ed 777dacb9e7SEnji Cooper.Op Fl -expand-tabs 787dacb9e7SEnji Cooper.Op Fl -forward-ed 797dacb9e7SEnji Cooper.Op Fl -ignore-all-space 803bbe3f67SBaptiste Daroussin.Op Fl -ignore-case 817dacb9e7SEnji Cooper.Op Fl -ignore-space-change 827dacb9e7SEnji Cooper.Op Fl -initial-tab 837dacb9e7SEnji Cooper.Op Fl -minimal 8478b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case 853bbe3f67SBaptiste Daroussin.Op Fl -normal 867dacb9e7SEnji Cooper.Op Fl -paginate 877dacb9e7SEnji Cooper.Op Fl -rcs 887dacb9e7SEnji Cooper.Op Fl -show-c-function 89a077708dSBaptiste Daroussin.Op Fl -speed-large-files 907dacb9e7SEnji Cooper.Op Fl -starting-file 913bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr 9243fbd654SKyle Evans.Op Fl -tabsize Ar number 937dacb9e7SEnji Cooper.Op Fl -text 947dacb9e7SEnji Cooper.Fl C Ar number | -context Ar number 953bbe3f67SBaptiste Daroussin.Ar file1 file2 963bbe3f67SBaptiste Daroussin.Nm diff 97e68edb8cSKyle Evans.Op Fl aBbdiltw 987dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern 997dacb9e7SEnji Cooper.Op Fl -brief 100f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 101fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT 1027dacb9e7SEnji Cooper.Op Fl -ed 1037dacb9e7SEnji Cooper.Op Fl -expand-tabs 1047dacb9e7SEnji Cooper.Op Fl -forward-ed 1057dacb9e7SEnji Cooper.Op Fl -ignore-all-space 1063bbe3f67SBaptiste Daroussin.Op Fl -ignore-case 1077dacb9e7SEnji Cooper.Op Fl -ignore-space-change 1087dacb9e7SEnji Cooper.Op Fl -initial-tab 1097dacb9e7SEnji Cooper.Op Fl -minimal 11078b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case 1113bbe3f67SBaptiste Daroussin.Op Fl -normal 1127dacb9e7SEnji Cooper.Op Fl -paginate 1137dacb9e7SEnji Cooper.Op Fl -rcs 1147dacb9e7SEnji Cooper.Op Fl -show-c-function 115a077708dSBaptiste Daroussin.Op Fl -speed-large-files 1167dacb9e7SEnji Cooper.Op Fl -starting-file 1173bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr 11843fbd654SKyle Evans.Op Fl -tabsize Ar number 1197dacb9e7SEnji Cooper.Op Fl -text 1207dacb9e7SEnji Cooper.Fl D Ar string | Fl -ifdef Ar string 1213bbe3f67SBaptiste Daroussin.Ar file1 file2 1223bbe3f67SBaptiste Daroussin.Nm diff 123e68edb8cSKyle Evans.Op Fl aBbdilpTtw 1247dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern 125e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern 1267dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label 1277dacb9e7SEnji Cooper.Op Fl -brief 128f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 129fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT 1307dacb9e7SEnji Cooper.Op Fl -ed 1317dacb9e7SEnji Cooper.Op Fl -expand-tabs 1327dacb9e7SEnji Cooper.Op Fl -forward-ed 1337dacb9e7SEnji Cooper.Op Fl -ignore-all-space 1343bbe3f67SBaptiste Daroussin.Op Fl -ignore-case 1357dacb9e7SEnji Cooper.Op Fl -ignore-space-change 1367dacb9e7SEnji Cooper.Op Fl -initial-tab 1377dacb9e7SEnji Cooper.Op Fl -minimal 13878b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case 1393bbe3f67SBaptiste Daroussin.Op Fl -normal 1407dacb9e7SEnji Cooper.Op Fl -paginate 1417dacb9e7SEnji Cooper.Op Fl -rcs 1427dacb9e7SEnji Cooper.Op Fl -show-c-function 143a077708dSBaptiste Daroussin.Op Fl -speed-large-files 1447dacb9e7SEnji Cooper.Op Fl -starting-file 1453bbe3f67SBaptiste Daroussin.Op Fl -strip-trailing-cr 14643fbd654SKyle Evans.Op Fl -tabsize Ar number 1477dacb9e7SEnji Cooper.Op Fl -text 1487dacb9e7SEnji Cooper.Fl U Ar number | Fl -unified Ar number 1493bbe3f67SBaptiste Daroussin.Ar file1 file2 1503bbe3f67SBaptiste Daroussin.Nm diff 151e68edb8cSKyle Evans.Op Fl aBbdilNPprsTtw 1523bbe3f67SBaptiste Daroussin.Oo 1533bbe3f67SBaptiste Daroussin.Fl c | e | f | 1543bbe3f67SBaptiste Daroussin.Fl n | q | u 1553bbe3f67SBaptiste Daroussin.Oc 1567dacb9e7SEnji Cooper.Op Fl -brief 157f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 158fddcb7b8SBaptiste Daroussin.Op Fl -changed-group-format Ar GFMT 1597dacb9e7SEnji Cooper.Op Fl -context 1607dacb9e7SEnji Cooper.Op Fl -ed 1617dacb9e7SEnji Cooper.Op Fl -expand-tabs 1627dacb9e7SEnji Cooper.Op Fl -forward-ed 1637dacb9e7SEnji Cooper.Op Fl -ignore-all-space 1643bbe3f67SBaptiste Daroussin.Op Fl -ignore-case 1657dacb9e7SEnji Cooper.Op Fl -ignore-space-change 1667dacb9e7SEnji Cooper.Op Fl -initial-tab 1677dacb9e7SEnji Cooper.Op Fl -minimal 1687dacb9e7SEnji Cooper.Op Fl -new-file 16978b83a1eSEnji Cooper.Op Fl -no-ignore-file-name-case 1703bbe3f67SBaptiste Daroussin.Op Fl -normal 1717dacb9e7SEnji Cooper.Op Fl -paginate 1727dacb9e7SEnji Cooper.Op Fl -rcs 1737dacb9e7SEnji Cooper.Op Fl -recursive 1747dacb9e7SEnji Cooper.Op Fl -report-identical-files 1757dacb9e7SEnji Cooper.Op Fl -show-c-function 176a077708dSBaptiste Daroussin.Op Fl -speed-large-files 1779ba27624SEnji Cooper.Op Fl -strip-trailing-cr 17843fbd654SKyle Evans.Op Fl -tabsize Ar number 1797dacb9e7SEnji Cooper.Op Fl -text 1807dacb9e7SEnji Cooper.Op Fl -unidirectional-new-file 1817dacb9e7SEnji Cooper.Op Fl -unified 1827dacb9e7SEnji Cooper.Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern 183e51aabf8SPiotr Pawel Stefaniak.Op Fl F Ar pattern | Fl -show-function-line Ar pattern 1843bbe3f67SBaptiste Daroussin.Bk -words 1857dacb9e7SEnji Cooper.Op Fl L Ar label | Fl -label Ar label 1867dacb9e7SEnji Cooper.Op Fl S Ar name | Fl -starting-file Ar name 1877dacb9e7SEnji Cooper.Op Fl X Ar file | Fl -exclude-from Ar file 1887dacb9e7SEnji Cooper.Op Fl x Ar pattern | Fl -exclude Ar pattern 1893bbe3f67SBaptiste Daroussin.Ek 1903bbe3f67SBaptiste Daroussin.Ar dir1 dir2 19164793e74SBaptiste Daroussin.Nm diff 19264793e74SBaptiste Daroussin.Op Fl aBbditwW 193f38702e5SCameron Katri.Op Fl -color Ns = Ns Ar when 194469635f6SMateusz Piotrowski.Op Fl -expand-tabs 195469635f6SMateusz Piotrowski.Op Fl -ignore-all-blanks 196469635f6SMateusz Piotrowski.Op Fl -ignore-blank-lines 197469635f6SMateusz Piotrowski.Op Fl -ignore-case 198469635f6SMateusz Piotrowski.Op Fl -minimal 199469635f6SMateusz Piotrowski.Op Fl -no-ignore-file-name-case 200469635f6SMateusz Piotrowski.Op Fl -strip-trailing-cr 201469635f6SMateusz Piotrowski.Op Fl -suppress-common-lines 20243fbd654SKyle Evans.Op Fl -tabsize Ar number 203469635f6SMateusz Piotrowski.Op Fl -text 204469635f6SMateusz Piotrowski.Op Fl -width 20564793e74SBaptiste Daroussin.Fl y | Fl -side-by-side 20664793e74SBaptiste Daroussin.Ar file1 file2 2078cf449dbSTom Jones.Nm diff 2088cf449dbSTom Jones.Op Fl -help 2098cf449dbSTom Jones.Op Fl -version 2103bbe3f67SBaptiste Daroussin.Sh DESCRIPTION 2113bbe3f67SBaptiste DaroussinThe 2123bbe3f67SBaptiste Daroussin.Nm 2133bbe3f67SBaptiste Daroussinutility compares the contents of 2143bbe3f67SBaptiste Daroussin.Ar file1 2153bbe3f67SBaptiste Daroussinand 2163bbe3f67SBaptiste Daroussin.Ar file2 2173bbe3f67SBaptiste Daroussinand writes to the standard output the list of changes necessary to 2183bbe3f67SBaptiste Daroussinconvert one file into the other. 2193bbe3f67SBaptiste DaroussinNo output is produced if the files are identical. 2203bbe3f67SBaptiste Daroussin.Pp 2213bbe3f67SBaptiste DaroussinOutput options (mutually exclusive): 2223bbe3f67SBaptiste Daroussin.Bl -tag -width Ds 223bcf91ad6SBaptiste Daroussin.It Fl C Ar number Fl -context Ar number 2243bbe3f67SBaptiste DaroussinLike 2253bbe3f67SBaptiste Daroussin.Fl c 2263bbe3f67SBaptiste Daroussinbut produces a diff with 2273bbe3f67SBaptiste Daroussin.Ar number 2283bbe3f67SBaptiste Daroussinlines of context. 2293bbe3f67SBaptiste Daroussin.It Fl c 2303bbe3f67SBaptiste DaroussinProduces a diff with 3 lines of context. 2313bbe3f67SBaptiste DaroussinWith 2323bbe3f67SBaptiste Daroussin.Fl c 2333bbe3f67SBaptiste Daroussinthe output format is modified slightly: 2343bbe3f67SBaptiste Daroussinthe output begins with identification of the files involved and 2353bbe3f67SBaptiste Daroussintheir creation dates and then each change is separated 2363bbe3f67SBaptiste Daroussinby a line with fifteen 2373bbe3f67SBaptiste Daroussin.Li * Ns 's . 2383bbe3f67SBaptiste DaroussinThe lines removed from 2393bbe3f67SBaptiste Daroussin.Ar file1 2403bbe3f67SBaptiste Daroussinare marked with 2413bbe3f67SBaptiste Daroussin.Sq \&-\ \& ; 2423bbe3f67SBaptiste Daroussinthose added to 2433bbe3f67SBaptiste Daroussin.Ar file2 2443bbe3f67SBaptiste Daroussinare marked 24579208b10SBaptiste Daroussin.Sq +\ \& . 2463bbe3f67SBaptiste DaroussinLines which are changed from one file to the other are marked in 2473bbe3f67SBaptiste Daroussinboth files with 2483bbe3f67SBaptiste Daroussin.Sq !\ \& . 2493bbe3f67SBaptiste DaroussinChanges which lie within 3 lines of each other are grouped together on 2503bbe3f67SBaptiste Daroussinoutput. 251bcf91ad6SBaptiste Daroussin.It Fl D Ar string Fl -ifdef Ar string 2523bbe3f67SBaptiste DaroussinCreates a merged version of 2533bbe3f67SBaptiste Daroussin.Ar file1 2543bbe3f67SBaptiste Daroussinand 2553bbe3f67SBaptiste Daroussin.Ar file2 2563bbe3f67SBaptiste Daroussinon the standard output, with C preprocessor controls included so that 2573bbe3f67SBaptiste Daroussina compilation of the result without defining 2583bbe3f67SBaptiste Daroussin.Ar string 2593bbe3f67SBaptiste Daroussinis equivalent to compiling 2603bbe3f67SBaptiste Daroussin.Ar file1 , 2613bbe3f67SBaptiste Daroussinwhile defining 2623bbe3f67SBaptiste Daroussin.Ar string 2633bbe3f67SBaptiste Daroussinwill yield 2643bbe3f67SBaptiste Daroussin.Ar file2 . 265bcf91ad6SBaptiste Daroussin.It Fl e -ed 2663bbe3f67SBaptiste DaroussinProduces output in a form suitable as input for the editor utility, 2673bbe3f67SBaptiste Daroussin.Xr ed 1 , 2683bbe3f67SBaptiste Daroussinwhich can then be used to convert file1 into file2. 2693bbe3f67SBaptiste Daroussin.Pp 2703bbe3f67SBaptiste DaroussinExtra commands are added to the output when comparing directories with 2713bbe3f67SBaptiste Daroussin.Fl e , 2723bbe3f67SBaptiste Daroussinso that the result is a 2733bbe3f67SBaptiste Daroussin.Xr sh 1 2743bbe3f67SBaptiste Daroussinscript for converting text files which are common to the two directories 2753bbe3f67SBaptiste Daroussinfrom their state in 2763bbe3f67SBaptiste Daroussin.Ar dir1 2773bbe3f67SBaptiste Daroussinto their state in 2783bbe3f67SBaptiste Daroussin.Ar dir2 . 279bcf91ad6SBaptiste Daroussin.It Fl f -forward-ed 2803bbe3f67SBaptiste DaroussinIdentical output to that of the 2813bbe3f67SBaptiste Daroussin.Fl e 2823bbe3f67SBaptiste Daroussinflag, but in reverse order. 2833bbe3f67SBaptiste DaroussinIt cannot be digested by 2843bbe3f67SBaptiste Daroussin.Xr ed 1 . 2858cf449dbSTom Jones.It Fl -help 2868cf449dbSTom JonesThis option prints a summary to stdout and exits with status 0. 2873bbe3f67SBaptiste Daroussin.It Fl n 2883bbe3f67SBaptiste DaroussinProduces a script similar to that of 2893bbe3f67SBaptiste Daroussin.Fl e , 2903bbe3f67SBaptiste Daroussinbut in the opposite order and with a count of changed lines on each 2913bbe3f67SBaptiste Daroussininsert or delete command. 292204fa3b0SFernando ApesteguíaThis is the form used by rcsdiff. 293bcf91ad6SBaptiste Daroussin.It Fl q -brief 2943bbe3f67SBaptiste DaroussinJust print a line when the files differ. 2953bbe3f67SBaptiste DaroussinDoes not output a list of changes. 296bcf91ad6SBaptiste Daroussin.It Fl U Ar number Fl -unified Ar number 2973bbe3f67SBaptiste DaroussinLike 2983bbe3f67SBaptiste Daroussin.Fl u 2993bbe3f67SBaptiste Daroussinbut produces a diff with 3003bbe3f67SBaptiste Daroussin.Ar number 3013bbe3f67SBaptiste Daroussinlines of context. 3023bbe3f67SBaptiste Daroussin.It Fl u 3033bbe3f67SBaptiste DaroussinProduces a 3043bbe3f67SBaptiste Daroussin.Em unified 3053bbe3f67SBaptiste Daroussindiff with 3 lines of context. 3063bbe3f67SBaptiste DaroussinA unified diff is similar to the context diff produced by the 3073bbe3f67SBaptiste Daroussin.Fl c 3083bbe3f67SBaptiste Daroussinoption. 3093bbe3f67SBaptiste DaroussinHowever, unlike with 3103bbe3f67SBaptiste Daroussin.Fl c , 3113bbe3f67SBaptiste Daroussinall lines to be changed (added and/or removed) are present in 3123bbe3f67SBaptiste Daroussina single section. 3138cf449dbSTom Jones.It Fl -version 3148cf449dbSTom JonesThis option prints a version string to stdout and exits with status 0. 31564793e74SBaptiste Daroussin.It Fl y Fl -side-by-side 31679208b10SBaptiste DaroussinOutput in two columns with a marker between them. 31779208b10SBaptiste DaroussinThe marker can be one 31864793e74SBaptiste Daroussinof the following: 31964793e74SBaptiste Daroussin.Pp 32064793e74SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 32164793e74SBaptiste Daroussin.It space 32264793e74SBaptiste DaroussinCorresponding lines are identical. 32364793e74SBaptiste Daroussin.It '|' 32464793e74SBaptiste DaroussinCorresponding lines are different. 32564793e74SBaptiste Daroussin.It '<' 32664793e74SBaptiste DaroussinFiles differ and only the first file contains the line. 32764793e74SBaptiste Daroussin.It '>' 32864793e74SBaptiste DaroussinFiles differ and only the second file contains the line. 32964793e74SBaptiste Daroussin.El 3303bbe3f67SBaptiste Daroussin.El 3313bbe3f67SBaptiste Daroussin.Pp 3323bbe3f67SBaptiste DaroussinComparison options: 3333bbe3f67SBaptiste Daroussin.Bl -tag -width Ds 334bcf91ad6SBaptiste Daroussin.It Fl a -text 33579208b10SBaptiste DaroussinTreat all files as ASCII text. 3363bbe3f67SBaptiste DaroussinNormally 3373bbe3f67SBaptiste Daroussin.Nm 3383bbe3f67SBaptiste Daroussinwill simply print 3393bbe3f67SBaptiste Daroussin.Dq Binary files ... differ 3403bbe3f67SBaptiste Daroussinif files contain binary characters. 3413bbe3f67SBaptiste DaroussinUse of this option forces 3423bbe3f67SBaptiste Daroussin.Nm 3433bbe3f67SBaptiste Daroussinto produce a diff. 344e68edb8cSKyle Evans.It Fl B Fl -ignore-blank-lines 345e68edb8cSKyle EvansCauses chunks that include only blank lines to be ignored. 3468ccef193SBaptiste Daroussin.It Fl b -ignore-space-change 3473bbe3f67SBaptiste DaroussinCauses trailing blanks (spaces and tabs) to be ignored, and other 3483bbe3f67SBaptiste Daroussinstrings of blanks to compare equal. 349f38702e5SCameron Katri.It Fl -color= Ns Oo Ar when Oc 350f38702e5SCameron KatriColor the additions green, and removals red, or the value in the 351f38702e5SCameron Katri.Ev DIFFCOLORS 352f38702e5SCameron Katrienvironment variable. 353f38702e5SCameron KatriThe possible values of 354f38702e5SCameron Katri.Ar when 355f38702e5SCameron Katriare 356f38702e5SCameron Katri.Dq Cm never , 357f38702e5SCameron Katri.Dq Cm always 358f38702e5SCameron Katriand 359f38702e5SCameron Katri.Dq Cm auto . 360f38702e5SCameron Katri.Cm auto 361f38702e5SCameron Katriwill use color if the output is a tty and the 362f38702e5SCameron Katri.Ev COLORTERM 363f38702e5SCameron Katrienvironment variable is set to a non-empty string. 364bcf91ad6SBaptiste Daroussin.It Fl d -minimal 3653bbe3f67SBaptiste DaroussinTry very hard to produce a diff as small as possible. 3663bbe3f67SBaptiste DaroussinThis may consume a lot of processing power and memory when processing 3673bbe3f67SBaptiste Daroussinlarge files with many changes. 368e51aabf8SPiotr Pawel Stefaniak.It Fl F Ar pattern, Fl -show-function-line Ar pattern 369e51aabf8SPiotr Pawel StefaniakLike 370e51aabf8SPiotr Pawel Stefaniak.Fl p, 371e51aabf8SPiotr Pawel Stefaniakbut display the last line that matches provided pattern. 372bcf91ad6SBaptiste Daroussin.It Fl I Ar pattern Fl -ignore-matching-lines Ar pattern 3733bbe3f67SBaptiste DaroussinIgnores changes, insertions, and deletions whose lines match the 3743bbe3f67SBaptiste Daroussinextended regular expression 3753bbe3f67SBaptiste Daroussin.Ar pattern . 3763bbe3f67SBaptiste DaroussinMultiple 3773bbe3f67SBaptiste Daroussin.Fl I 3783bbe3f67SBaptiste Daroussinpatterns may be specified. 3793bbe3f67SBaptiste DaroussinAll lines in the change must match some pattern for the change to be 3803bbe3f67SBaptiste Daroussinignored. 3813bbe3f67SBaptiste DaroussinSee 3823bbe3f67SBaptiste Daroussin.Xr re_format 7 3833bbe3f67SBaptiste Daroussinfor more information on regular expression patterns. 384bcf91ad6SBaptiste Daroussin.It Fl i -ignore-case 3853bbe3f67SBaptiste DaroussinIgnores the case of letters. 3863bbe3f67SBaptiste DaroussinE.g., 3873bbe3f67SBaptiste Daroussin.Dq A 3883bbe3f67SBaptiste Daroussinwill compare equal to 3893bbe3f67SBaptiste Daroussin.Dq a . 390bcf91ad6SBaptiste Daroussin.It Fl l -paginate 3913bbe3f67SBaptiste DaroussinPass the output through 3923bbe3f67SBaptiste Daroussin.Xr pr 1 3933bbe3f67SBaptiste Daroussinto paginate it. 394bcf91ad6SBaptiste Daroussin.It Fl L Ar label Fl -label Ar label 3953bbe3f67SBaptiste DaroussinPrint 3963bbe3f67SBaptiste Daroussin.Ar label 3973bbe3f67SBaptiste Daroussininstead of the first (and second, if this option is specified twice) 3983bbe3f67SBaptiste Daroussinfile name and time in the context or unified diff header. 399bcf91ad6SBaptiste Daroussin.It Fl p -show-c-function 4003bbe3f67SBaptiste DaroussinWith unified and context diffs, show with each change 4013bbe3f67SBaptiste Daroussinthe first 40 characters of the last line before the context beginning 4023bbe3f67SBaptiste Daroussinwith a letter, an underscore or a dollar sign. 4038f79bd9bSTom JonesFor C and Objective-C source code following standard layout conventions, this 4048f79bd9bSTom Joneswill show the prototype of the function the change applies to. 405bcf91ad6SBaptiste Daroussin.It Fl T -initial-tab 4063bbe3f67SBaptiste DaroussinPrint a tab rather than a space before the rest of the line for the 4073bbe3f67SBaptiste Daroussinnormal, context or unified output formats. 4083bbe3f67SBaptiste DaroussinThis makes the alignment of tabs in the line consistent. 409bcf91ad6SBaptiste Daroussin.It Fl t -expand-tabs 4103bbe3f67SBaptiste DaroussinWill expand tabs in output lines. 4113bbe3f67SBaptiste DaroussinNormal or 4123bbe3f67SBaptiste Daroussin.Fl c 4133bbe3f67SBaptiste Daroussinoutput adds character(s) to the front of each line which may screw up 4143bbe3f67SBaptiste Daroussinthe indentation of the original source lines and make the output listing 4153bbe3f67SBaptiste Daroussindifficult to interpret. 4163bbe3f67SBaptiste DaroussinThis option will preserve the original source's indentation. 417bcf91ad6SBaptiste Daroussin.It Fl w -ignore-all-blanks 4183bbe3f67SBaptiste DaroussinIs similar to 419bcf91ad6SBaptiste Daroussin.Fl b -ignore-space-change 4203bbe3f67SBaptiste Daroussinbut causes whitespace (blanks and tabs) to be totally ignored. 4213bbe3f67SBaptiste DaroussinE.g., 4223bbe3f67SBaptiste Daroussin.Dq if (\ \&a == b \&) 4233bbe3f67SBaptiste Daroussinwill compare equal to 4243bbe3f67SBaptiste Daroussin.Dq if(a==b) . 42564793e74SBaptiste Daroussin.It Fl W Ar number Fl -width Ar number 42664793e74SBaptiste DaroussinOutput at most 42764793e74SBaptiste Daroussin.Ar number 42879208b10SBaptiste Daroussincolumns when using side by side format. 42979208b10SBaptiste DaroussinThe default value is 130. 430*53de23f4SDag-Erling SmørgravNote that unless 431*53de23f4SDag-Erling Smørgrav.It Fl t 432*53de23f4SDag-Erling Smørgravwas specified, 433*53de23f4SDag-Erling Smørgrav.Nm 434*53de23f4SDag-Erling Smørgravwill always align the second column to a tab stop, so values of 435*53de23f4SDag-Erling Smørgrav.Fl -width 436*53de23f4SDag-Erling Smørgravsmaller than approximately five times the value of 437*53de23f4SDag-Erling Smørgrav.Fl -tabsize 438*53de23f4SDag-Erling Smørgravmay yield surprising results. 439fddcb7b8SBaptiste Daroussin.It Fl -changed-group-format Ar GFMT 440fddcb7b8SBaptiste DaroussinFormat input groups in the provided 441fddcb7b8SBaptiste Daroussin.Pp 442fddcb7b8SBaptiste Daroussinthe format is a string with special keywords: 443fddcb7b8SBaptiste Daroussin.Bl -tag -width %< 444fddcb7b8SBaptiste Daroussin.It %< 445fddcb7b8SBaptiste Daroussinlines from FILE1 446fddcb7b8SBaptiste Daroussin.It %< 447fddcb7b8SBaptiste Daroussinlines from FILE2 448fddcb7b8SBaptiste Daroussin.El 449bcf91ad6SBaptiste Daroussin.It Fl -ignore-file-name-case 450bcf91ad6SBaptiste Daroussinignore case when comparing file names 451bcf91ad6SBaptiste Daroussin.It Fl -no-ignore-file-name-case 4524185d1f7SPin-Yi Kuodo not ignore case when comparing file names (default) 453bcf91ad6SBaptiste Daroussin.It Fl -normal 454bcf91ad6SBaptiste Daroussindefault diff output 455bcf91ad6SBaptiste Daroussin.It Fl -speed-large-files 456bcf91ad6SBaptiste Daroussinstub option for compatibility with GNU diff 457bcf91ad6SBaptiste Daroussin.It Fl -strip-trailing-cr 458bcf91ad6SBaptiste Daroussinstrip carriage return on input files 45964793e74SBaptiste Daroussin.It Fl -suppress-common-lines 46064793e74SBaptiste DaroussinDo not output common lines when using the side by side format 46164793e74SBaptiste Daroussin.It Fl -tabsize Ar number 462bcf91ad6SBaptiste DaroussinNumber of spaces representing a tab (default 8) 4633bbe3f67SBaptiste Daroussin.El 4643bbe3f67SBaptiste Daroussin.Pp 4653bbe3f67SBaptiste DaroussinDirectory comparison options: 4663bbe3f67SBaptiste Daroussin.Bl -tag -width Ds 467bcf91ad6SBaptiste Daroussin.It Fl N -new-file 4683bbe3f67SBaptiste DaroussinIf a file is found in only one directory, act as if it was found in the 4693bbe3f67SBaptiste Daroussinother directory too but was of zero size. 470bcf91ad6SBaptiste Daroussin.It Fl P -unidirectional-new-file 4713bbe3f67SBaptiste DaroussinIf a file is found only in 4723bbe3f67SBaptiste Daroussin.Ar dir2 , 4733bbe3f67SBaptiste Daroussinact as if it was found in 4743bbe3f67SBaptiste Daroussin.Ar dir1 4753bbe3f67SBaptiste Daroussintoo but was of zero size. 476bcf91ad6SBaptiste Daroussin.It Fl r -recursive 4773bbe3f67SBaptiste DaroussinCauses application of 4783bbe3f67SBaptiste Daroussin.Nm 4793bbe3f67SBaptiste Daroussinrecursively to common subdirectories encountered. 480bcf91ad6SBaptiste Daroussin.It Fl S Ar name Fl -starting-file Ar name 4813bbe3f67SBaptiste DaroussinRe-starts a directory 4823bbe3f67SBaptiste Daroussin.Nm 4833bbe3f67SBaptiste Daroussinin the middle, beginning with file 4843bbe3f67SBaptiste Daroussin.Ar name . 485bcf91ad6SBaptiste Daroussin.It Fl s -report-identical-files 4863bbe3f67SBaptiste DaroussinCauses 4873bbe3f67SBaptiste Daroussin.Nm 4883bbe3f67SBaptiste Daroussinto report files which are the same, which are otherwise not mentioned. 489bcf91ad6SBaptiste Daroussin.It Fl X Ar file Fl -exclude-from Ar file 4903bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match 4913bbe3f67SBaptiste Daroussinlines in 4923bbe3f67SBaptiste Daroussin.Ar file . 4933bbe3f67SBaptiste DaroussinMultiple 4943bbe3f67SBaptiste Daroussin.Fl X 4953bbe3f67SBaptiste Daroussinoptions may be specified. 496bcf91ad6SBaptiste Daroussin.It Fl x Ar pattern Fl -exclude Ar pattern 4973bbe3f67SBaptiste DaroussinExclude files and subdirectories from comparison whose basenames match 4983bbe3f67SBaptiste Daroussin.Ar pattern . 4993bbe3f67SBaptiste DaroussinPatterns are matched using shell-style globbing via 5003bbe3f67SBaptiste Daroussin.Xr fnmatch 3 . 5013bbe3f67SBaptiste DaroussinMultiple 5023bbe3f67SBaptiste Daroussin.Fl x 5033bbe3f67SBaptiste Daroussinoptions may be specified. 5043bbe3f67SBaptiste Daroussin.El 5053bbe3f67SBaptiste Daroussin.Pp 5063bbe3f67SBaptiste DaroussinIf both arguments are directories, 5073bbe3f67SBaptiste Daroussin.Nm 5083bbe3f67SBaptiste Daroussinsorts the contents of the directories by name, and then runs the 5093bbe3f67SBaptiste Daroussinregular file 5103bbe3f67SBaptiste Daroussin.Nm 5113bbe3f67SBaptiste Daroussinalgorithm, producing a change list, 5123bbe3f67SBaptiste Daroussinon text files which are different. 5133bbe3f67SBaptiste DaroussinBinary files which differ, 5143bbe3f67SBaptiste Daroussincommon subdirectories, and files which appear in only one directory 5153bbe3f67SBaptiste Daroussinare described as such. 5163bbe3f67SBaptiste DaroussinIn directory mode only regular files and directories are compared. 51779208b10SBaptiste DaroussinIf a non-regular file such as a device special file or FIFO is encountered, 51879208b10SBaptiste Daroussina diagnostic message is printed. 5193bbe3f67SBaptiste Daroussin.Pp 5203bbe3f67SBaptiste DaroussinIf only one of 5213bbe3f67SBaptiste Daroussin.Ar file1 5223bbe3f67SBaptiste Daroussinand 5233bbe3f67SBaptiste Daroussin.Ar file2 5243bbe3f67SBaptiste Daroussinis a directory, 5253bbe3f67SBaptiste Daroussin.Nm 5263bbe3f67SBaptiste Daroussinis applied to the non-directory file and the file contained in 5273bbe3f67SBaptiste Daroussinthe directory file with a filename that is the same as the 5283bbe3f67SBaptiste Daroussinlast component of the non-directory file. 5293bbe3f67SBaptiste Daroussin.Pp 5303bbe3f67SBaptiste DaroussinIf either 5313bbe3f67SBaptiste Daroussin.Ar file1 5323bbe3f67SBaptiste Daroussinor 5333bbe3f67SBaptiste Daroussin.Ar file2 5343bbe3f67SBaptiste Daroussinis 5353bbe3f67SBaptiste Daroussin.Sq - , 5363bbe3f67SBaptiste Daroussinthe standard input is 5373bbe3f67SBaptiste Daroussinused in its place. 5383bbe3f67SBaptiste Daroussin.Ss Output Style 5393bbe3f67SBaptiste DaroussinThe default (without 5403bbe3f67SBaptiste Daroussin.Fl e , 5413bbe3f67SBaptiste Daroussin.Fl c , 5423bbe3f67SBaptiste Daroussinor 543bcf91ad6SBaptiste Daroussin.Fl n -rcs 5443bbe3f67SBaptiste Daroussin.\" -C 5453bbe3f67SBaptiste Daroussinoptions) 5463bbe3f67SBaptiste Daroussinoutput contains lines of these forms, where 5473bbe3f67SBaptiste Daroussin.Va XX , YY , ZZ , QQ 5483bbe3f67SBaptiste Daroussinare line numbers respective of file order. 5493bbe3f67SBaptiste Daroussin.Pp 5503bbe3f67SBaptiste Daroussin.Bl -tag -width "XX,YYcZZ,QQ" -compact 5513bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY 5523bbe3f67SBaptiste DaroussinAt (the end of) line 5533bbe3f67SBaptiste Daroussin.Va XX 5543bbe3f67SBaptiste Daroussinof 5553bbe3f67SBaptiste Daroussin.Ar file1 , 5563bbe3f67SBaptiste Daroussinappend the contents 5573bbe3f67SBaptiste Daroussinof line 5583bbe3f67SBaptiste Daroussin.Va YY 5593bbe3f67SBaptiste Daroussinof 5603bbe3f67SBaptiste Daroussin.Ar file2 5613bbe3f67SBaptiste Daroussinto make them equal. 5623bbe3f67SBaptiste Daroussin.It Li XX Ns Ic a Ns Li YY,ZZ 5633bbe3f67SBaptiste DaroussinSame as above, but append the range of lines, 5643bbe3f67SBaptiste Daroussin.Va YY 5653bbe3f67SBaptiste Daroussinthrough 5663bbe3f67SBaptiste Daroussin.Va ZZ 5673bbe3f67SBaptiste Daroussinof 5683bbe3f67SBaptiste Daroussin.Ar file2 5693bbe3f67SBaptiste Daroussinto line 5703bbe3f67SBaptiste Daroussin.Va XX 5713bbe3f67SBaptiste Daroussinof file1. 5723bbe3f67SBaptiste Daroussin.It Li XX Ns Ic d Ns Li YY 5733bbe3f67SBaptiste DaroussinAt line 5743bbe3f67SBaptiste Daroussin.Va XX 5753bbe3f67SBaptiste Daroussindelete 5763bbe3f67SBaptiste Daroussinthe line. 5773bbe3f67SBaptiste DaroussinThe value 5783bbe3f67SBaptiste Daroussin.Va YY 5793bbe3f67SBaptiste Daroussintells to which line the change would bring 5803bbe3f67SBaptiste Daroussin.Ar file1 5813bbe3f67SBaptiste Daroussinin line with 5823bbe3f67SBaptiste Daroussin.Ar file2 . 5833bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic d Ns Li ZZ 5843bbe3f67SBaptiste DaroussinDelete the range of lines 5853bbe3f67SBaptiste Daroussin.Va XX 5863bbe3f67SBaptiste Daroussinthrough 5873bbe3f67SBaptiste Daroussin.Va YY 5883bbe3f67SBaptiste Daroussinin 5893bbe3f67SBaptiste Daroussin.Ar file1 . 5903bbe3f67SBaptiste Daroussin.It Li XX Ns Ic c Ns Li YY 5913bbe3f67SBaptiste DaroussinChange the line 5923bbe3f67SBaptiste Daroussin.Va XX 5933bbe3f67SBaptiste Daroussinin 5943bbe3f67SBaptiste Daroussin.Ar file1 5953bbe3f67SBaptiste Daroussinto the line 5963bbe3f67SBaptiste Daroussin.Va YY 5973bbe3f67SBaptiste Daroussinin 5983bbe3f67SBaptiste Daroussin.Ar file2 . 5993bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ 6003bbe3f67SBaptiste DaroussinReplace the range of specified lines with the line 6013bbe3f67SBaptiste Daroussin.Va ZZ . 6023bbe3f67SBaptiste Daroussin.It Li XX,YY Ns Ic c Ns Li ZZ,QQ 6033bbe3f67SBaptiste DaroussinReplace the range 6043bbe3f67SBaptiste Daroussin.Va XX , Ns Va YY 6053bbe3f67SBaptiste Daroussinfrom 6063bbe3f67SBaptiste Daroussin.Ar file1 6073bbe3f67SBaptiste Daroussinwith the range 6083bbe3f67SBaptiste Daroussin.Va ZZ , Ns Va QQ 6093bbe3f67SBaptiste Daroussinfrom 6103bbe3f67SBaptiste Daroussin.Ar file2 . 6113bbe3f67SBaptiste Daroussin.El 6123bbe3f67SBaptiste Daroussin.Pp 6133bbe3f67SBaptiste DaroussinThese lines resemble 6143bbe3f67SBaptiste Daroussin.Xr ed 1 6153bbe3f67SBaptiste Daroussinsubcommands to convert 6163bbe3f67SBaptiste Daroussin.Ar file1 6173bbe3f67SBaptiste Daroussininto 6183bbe3f67SBaptiste Daroussin.Ar file2 . 6193bbe3f67SBaptiste DaroussinThe line numbers before the action letters pertain to 6203bbe3f67SBaptiste Daroussin.Ar file1 ; 6213bbe3f67SBaptiste Daroussinthose after pertain to 6223bbe3f67SBaptiste Daroussin.Ar file2 . 6233bbe3f67SBaptiste DaroussinThus, by exchanging 6243bbe3f67SBaptiste Daroussin.Ic a 6253bbe3f67SBaptiste Daroussinfor 6263bbe3f67SBaptiste Daroussin.Ic d 6273bbe3f67SBaptiste Daroussinand reading the line in reverse order, one can also 6283bbe3f67SBaptiste Daroussindetermine how to convert 6293bbe3f67SBaptiste Daroussin.Ar file2 6303bbe3f67SBaptiste Daroussininto 6313bbe3f67SBaptiste Daroussin.Ar file1 . 6323bbe3f67SBaptiste DaroussinAs in 6333bbe3f67SBaptiste Daroussin.Xr ed 1 , 6343bbe3f67SBaptiste Daroussinidentical 6353bbe3f67SBaptiste Daroussinpairs (where num1 = num2) are abbreviated as a single 6363bbe3f67SBaptiste Daroussinnumber. 637f38702e5SCameron Katri.Sh ENVIRONMENT 638f38702e5SCameron Katri.Bl -tag -width DIFFCOLORS 639f38702e5SCameron Katri.It Ev DIFFCOLORS 640f38702e5SCameron KatriThe value of this variable is the form 641f38702e5SCameron Katri.Ar add Ns : Ns Ar rm , 642f38702e5SCameron Katriwhere 643f38702e5SCameron Katri.Ar add 644f38702e5SCameron Katriis the ASCII escape sequence for additions and 645f38702e5SCameron Katri.Ar rm 646f38702e5SCameron Katriis the ASCII escape sequence for deletions. 647f38702e5SCameron KatriIf this is unset, 648f38702e5SCameron Katri.Nm 649f38702e5SCameron Katriuses green for additions and red for removals. 650f38702e5SCameron Katri.El 6513bbe3f67SBaptiste Daroussin.Sh FILES 6523bbe3f67SBaptiste Daroussin.Bl -tag -width /tmp/diff.XXXXXXXX -compact 65379208b10SBaptiste Daroussin.It Pa /tmp/diff.XXXXXXXX 6543bbe3f67SBaptiste DaroussinTemporary file used when comparing a device or the standard input. 6553bbe3f67SBaptiste DaroussinNote that the temporary file is unlinked as soon as it is created 6563bbe3f67SBaptiste Daroussinso it will not show up in a directory listing. 6573bbe3f67SBaptiste Daroussin.El 6583bbe3f67SBaptiste Daroussin.Sh EXIT STATUS 6593bbe3f67SBaptiste DaroussinThe 6603bbe3f67SBaptiste Daroussin.Nm 6613bbe3f67SBaptiste Daroussinutility exits with one of the following values: 6623bbe3f67SBaptiste Daroussin.Pp 6633bbe3f67SBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 6643bbe3f67SBaptiste Daroussin.It 0 6653bbe3f67SBaptiste DaroussinNo differences were found. 6663bbe3f67SBaptiste Daroussin.It 1 6673bbe3f67SBaptiste DaroussinDifferences were found. 6683bbe3f67SBaptiste Daroussin.It >1 6693bbe3f67SBaptiste DaroussinAn error occurred. 6703bbe3f67SBaptiste Daroussin.El 6718cf449dbSTom Jones.Pp 6728cf449dbSTom JonesThe 6738cf449dbSTom Jones.Fl -help 6748cf449dbSTom Jonesand 6758cf449dbSTom Jones.Fl -version 6768cf449dbSTom Jonesoptions exit with a status of 0. 677204fa3b0SFernando Apesteguía.Sh EXAMPLES 678204fa3b0SFernando ApesteguíaCompare 679204fa3b0SFernando Apesteguía.Pa old_dir 680204fa3b0SFernando Apesteguíaand 681204fa3b0SFernando Apesteguía.Pa new_dir 682204fa3b0SFernando Apesteguíarecursively generating an unified diff and treating files found only in one 683204fa3b0SFernando Apesteguíaof those directories as new files: 684204fa3b0SFernando Apesteguía.Bd -literal -offset indent 685204fa3b0SFernando Apesteguía$ diff -ruN /path/to/old_dir /path/to/new_dir 686204fa3b0SFernando Apesteguía.Ed 687204fa3b0SFernando Apesteguía.Pp 688204fa3b0SFernando ApesteguíaSame as above but excluding files matching the expressions 689204fa3b0SFernando Apesteguía.Dq *.h 690204fa3b0SFernando Apesteguíaand 691204fa3b0SFernando Apesteguía.Dq *.c : 692204fa3b0SFernando Apesteguía.Bd -literal -offset indent 693204fa3b0SFernando Apesteguía$ diff -ruN -x '*.h' -x '*.c' /path/to/old_dir /path/to/new_dir 694204fa3b0SFernando Apesteguía.Ed 695204fa3b0SFernando Apesteguía.Pp 696204fa3b0SFernando ApesteguíaShow a single line indicating if the files differ: 697204fa3b0SFernando Apesteguía.Bd -literal -offset indent 698204fa3b0SFernando Apesteguía$ diff -q /boot/loader.conf /boot/defaults/loader.conf 699204fa3b0SFernando ApesteguíaFiles /boot/loader.conf and /boot/defaults/loader.conf differ 700204fa3b0SFernando Apesteguía.Ed 701204fa3b0SFernando Apesteguía.Pp 702204fa3b0SFernando ApesteguíaAssuming a file named 703204fa3b0SFernando Apesteguía.Pa example.txt 704204fa3b0SFernando Apesteguíawith the following contents: 705204fa3b0SFernando Apesteguía.Bd -literal -offset indent 706204fa3b0SFernando ApesteguíaFreeBSD is an operating system 707204fa3b0SFernando ApesteguíaLinux is a kernel 708204fa3b0SFernando ApesteguíaOpenBSD is an operating system 709204fa3b0SFernando Apesteguía.Ed 710204fa3b0SFernando Apesteguía.Pp 711204fa3b0SFernando ApesteguíaCompare stdin with 712204fa3b0SFernando Apesteguía.Pa example.txt 713204fa3b0SFernando Apesteguíaexcluding from the comparison those lines containing either 714204fa3b0SFernando Apesteguía.Qq Linux 715204fa3b0SFernando Apesteguíaor 716204fa3b0SFernando Apesteguía.Qq Open : 717204fa3b0SFernando Apesteguía.Bd -literal -offset indent 718204fa3b0SFernando Apesteguía$ echo "FreeBSD is an operating system" | diff -q -I 'Linux|Open' example.txt - 719204fa3b0SFernando Apesteguía.Ed 7203bbe3f67SBaptiste Daroussin.Sh SEE ALSO 7213bbe3f67SBaptiste Daroussin.Xr cmp 1 , 7223bbe3f67SBaptiste Daroussin.Xr comm 1 , 7233bbe3f67SBaptiste Daroussin.Xr diff3 1 , 7243bbe3f67SBaptiste Daroussin.Xr ed 1 , 7253bbe3f67SBaptiste Daroussin.Xr patch 1 , 726933870f0SBaptiste Daroussin.Xr pr 1 , 7273bbe3f67SBaptiste Daroussin.Xr sdiff 1 7283bbe3f67SBaptiste Daroussin.Rs 7293bbe3f67SBaptiste Daroussin.%A James W. Hunt 7303bbe3f67SBaptiste Daroussin.%A M. Douglas McIlroy 7313bbe3f67SBaptiste Daroussin.%T "An Algorithm for Differential File Comparison" 7323bbe3f67SBaptiste Daroussin.%J Computing Science Technical Report 7333bbe3f67SBaptiste Daroussin.%Q Bell Laboratories 41 7343bbe3f67SBaptiste Daroussin.%D June 1976 7353bbe3f67SBaptiste Daroussin.Re 7363bbe3f67SBaptiste Daroussin.Sh STANDARDS 7373bbe3f67SBaptiste DaroussinThe 7383bbe3f67SBaptiste Daroussin.Nm 7393bbe3f67SBaptiste Daroussinutility is compliant with the 7403bbe3f67SBaptiste Daroussin.St -p1003.1-2008 7413bbe3f67SBaptiste Daroussinspecification. 7423bbe3f67SBaptiste Daroussin.Pp 7433bbe3f67SBaptiste DaroussinThe flags 744469635f6SMateusz Piotrowski.Op Fl aDdIiLlNnPpqSsTtwXxy 7453bbe3f67SBaptiste Daroussinare extensions to that specification. 7463bbe3f67SBaptiste Daroussin.Sh HISTORY 7473bbe3f67SBaptiste DaroussinA 7483bbe3f67SBaptiste Daroussin.Nm 7493bbe3f67SBaptiste Daroussincommand appeared in 7503bbe3f67SBaptiste Daroussin.At v6 . 751