113b5b548SBaptiste Daroussin.\" $OpenBSD: sdiff.1,v 1.15 2007/06/29 14:48:07 jmc Exp $ 213b5b548SBaptiste Daroussin.\" 313b5b548SBaptiste Daroussin.\" Written by Raymond Lai <ray@cyth.net>. 413b5b548SBaptiste Daroussin.\" Public domain. 513b5b548SBaptiste Daroussin.\" 6*a834edfcSDag-Erling Smørgrav.Dd February 16, 2024 713b5b548SBaptiste Daroussin.Dt SDIFF 1 813b5b548SBaptiste Daroussin.Os 913b5b548SBaptiste Daroussin.Sh NAME 1013b5b548SBaptiste Daroussin.Nm sdiff 1113b5b548SBaptiste Daroussin.Nd side-by-side diff 1213b5b548SBaptiste Daroussin.Sh SYNOPSIS 1313b5b548SBaptiste Daroussin.Nm 1485bb63bdSBaptiste Daroussin.Op Fl abdilstHW 1513b5b548SBaptiste Daroussin.Op Fl I Ar regexp 1613b5b548SBaptiste Daroussin.Op Fl o Ar outfile 1713b5b548SBaptiste Daroussin.Op Fl w Ar width 1813b5b548SBaptiste Daroussin.Ar file1 1913b5b548SBaptiste Daroussin.Ar file2 2013b5b548SBaptiste Daroussin.Sh DESCRIPTION 2113b5b548SBaptiste Daroussin.Nm 2213b5b548SBaptiste Daroussindisplays two files side by side, 2313b5b548SBaptiste Daroussinwith any differences between the two highlighted as follows: 2413b5b548SBaptiste Daroussinnew lines are marked with 2513b5b548SBaptiste Daroussin.Sq \*(Gt ; 2613b5b548SBaptiste Daroussindeleted lines are marked with 2713b5b548SBaptiste Daroussin.Sq \*(Lt ; 2813b5b548SBaptiste Daroussinand changed lines are marked with 2913b5b548SBaptiste Daroussin.Sq \*(Ba . 3013b5b548SBaptiste Daroussin.Pp 3113b5b548SBaptiste Daroussin.Nm 3213b5b548SBaptiste Daroussincan also be used to interactively merge two files, 3313b5b548SBaptiste Daroussinprompting at each set of differences. 3413b5b548SBaptiste DaroussinSee the 3513b5b548SBaptiste Daroussin.Fl o 3613b5b548SBaptiste Daroussinoption for an explanation. 3713b5b548SBaptiste Daroussin.Pp 3813b5b548SBaptiste DaroussinThe options are: 3913b5b548SBaptiste Daroussin.Bl -tag -width Ds 4013b5b548SBaptiste Daroussin.It Fl l -left-column 4113b5b548SBaptiste DaroussinOnly print the left column for identical lines. 4213b5b548SBaptiste Daroussin.It Fl o -output Ar outfile 4313b5b548SBaptiste DaroussinInteractively merge 4413b5b548SBaptiste Daroussin.Ar file1 4513b5b548SBaptiste Daroussinand 4613b5b548SBaptiste Daroussin.Ar file2 4713b5b548SBaptiste Daroussininto 4813b5b548SBaptiste Daroussin.Ar outfile . 4913b5b548SBaptiste DaroussinIn this mode, the user is prompted for each set of differences. 5013b5b548SBaptiste DaroussinSee 5113b5b548SBaptiste Daroussin.Ev EDITOR 521ddda798SBaptiste Daroussinand 531ddda798SBaptiste Daroussin.Ev VISUAL , 5413b5b548SBaptiste Daroussinbelow, 5513b5b548SBaptiste Daroussinfor details of which editor, if any, is invoked. 5613b5b548SBaptiste Daroussin.Pp 5713b5b548SBaptiste DaroussinThe commands are as follows: 5813b5b548SBaptiste Daroussin.Bl -tag -width Ds 5913b5b548SBaptiste Daroussin.It Cm l | 1 6013b5b548SBaptiste DaroussinChoose left set of diffs. 6113b5b548SBaptiste Daroussin.It Cm r | 2 6213b5b548SBaptiste DaroussinChoose right set of diffs. 6313b5b548SBaptiste Daroussin.It Cm s 6413b5b548SBaptiste DaroussinSilent mode \(en identical lines are not printed. 6513b5b548SBaptiste Daroussin.It Cm v 6613b5b548SBaptiste DaroussinVerbose mode \(en identical lines are printed. 6713b5b548SBaptiste Daroussin.It Cm e 6813b5b548SBaptiste DaroussinStart editing an empty file, which will be merged into 6913b5b548SBaptiste Daroussin.Ar outfile 7013b5b548SBaptiste Daroussinupon exiting the editor. 7113b5b548SBaptiste Daroussin.It Cm e Cm l 7213b5b548SBaptiste DaroussinStart editing file with left set of diffs. 7313b5b548SBaptiste Daroussin.It Cm e Cm r 7413b5b548SBaptiste DaroussinStart editing file with right set of diffs. 7513b5b548SBaptiste Daroussin.It Cm e Cm b 7613b5b548SBaptiste DaroussinStart editing file with both sets of diffs. 7713b5b548SBaptiste Daroussin.It Cm q 7813b5b548SBaptiste DaroussinQuit 7913b5b548SBaptiste Daroussin.Nm . 8013b5b548SBaptiste Daroussin.El 8113b5b548SBaptiste Daroussin.It Fl s -suppress-common-lines 8213b5b548SBaptiste DaroussinSkip identical lines. 8313b5b548SBaptiste Daroussin.It Fl w -width Ar width 8413b5b548SBaptiste DaroussinPrint a maximum of 8513b5b548SBaptiste Daroussin.Ar width 8613b5b548SBaptiste Daroussincharacters on each line. 8713b5b548SBaptiste DaroussinThe default is 130 characters. 8813b5b548SBaptiste Daroussin.El 8913b5b548SBaptiste Daroussin.Pp 9013b5b548SBaptiste DaroussinOptions passed to 9113b5b548SBaptiste Daroussin.Xr diff 1 9213b5b548SBaptiste Daroussinare: 9313b5b548SBaptiste Daroussin.Bl -tag -width Ds 9413b5b548SBaptiste Daroussin.It Fl a -text 9513b5b548SBaptiste DaroussinTreat 9613b5b548SBaptiste Daroussin.Ar file1 9713b5b548SBaptiste Daroussinand 9813b5b548SBaptiste Daroussin.Ar file2 9913b5b548SBaptiste Daroussinas text files. 10013b5b548SBaptiste Daroussin.It Fl b -ignore-space-change 10113b5b548SBaptiste DaroussinIgnore trailing blank spaces. 10213b5b548SBaptiste Daroussin.It Fl d -minimal 10313b5b548SBaptiste DaroussinMinimize diff size. 10413b5b548SBaptiste Daroussin.It Fl I -ignore-matching-lines Ar regexp 10513b5b548SBaptiste DaroussinIgnore line changes matching 10613b5b548SBaptiste Daroussin.Ar regexp . 10713b5b548SBaptiste DaroussinAll lines in the change must match 10813b5b548SBaptiste Daroussin.Ar regexp 10913b5b548SBaptiste Daroussinfor the change to be ignored. 11013b5b548SBaptiste Daroussin.It Fl i -ignore-case 11113b5b548SBaptiste DaroussinDo a case-insensitive comparison. 11213b5b548SBaptiste Daroussin.It Fl t -expand-tabs 11313b5b548SBaptiste DaroussinExpand tabs to spaces. 11413b5b548SBaptiste Daroussin.It Fl W -ignore-all-space 11513b5b548SBaptiste DaroussinIgnore all spaces. 11613b5b548SBaptiste Daroussin.It Fl B -ignore-blank-lines 11713b5b548SBaptiste DaroussinIgnore blank lines. 11813b5b548SBaptiste Daroussin.It Fl E -ignore-tab-expansion 11913b5b548SBaptiste DaroussinTreat tabs and eight spaces as the same. 12013b5b548SBaptiste Daroussin.It Fl H -speed-large-files 12113b5b548SBaptiste DaroussinAssume scattered small changes in a large file. 12213b5b548SBaptiste Daroussin.It Fl -ignore-file-name-case 12313b5b548SBaptiste DaroussinIgnore the case of file names. 12413b5b548SBaptiste Daroussin.It Fl -no-ignore-file-name-case 12513b5b548SBaptiste DaroussinDo not ignore file name case. 12613b5b548SBaptiste Daroussin.It Fl -strip-trailing-cr 12713b5b548SBaptiste DaroussinSkip identical lines. 12813b5b548SBaptiste Daroussin.It Fl -tabsize Ar NUM 12913b5b548SBaptiste DaroussinChange the size of tabs (default is 8.) 13013b5b548SBaptiste Daroussin.El 13113b5b548SBaptiste Daroussin.Sh ENVIRONMENT 13213b5b548SBaptiste Daroussin.Bl -tag -width Ds 1331ddda798SBaptiste Daroussin.It Ev EDITOR , VISUAL 13413b5b548SBaptiste DaroussinSpecifies an editor to use with the 13513b5b548SBaptiste Daroussin.Fl o 13613b5b548SBaptiste Daroussinoption. 1371ddda798SBaptiste DaroussinIf both 1381ddda798SBaptiste Daroussin.Ev EDITOR 1391ddda798SBaptiste Daroussinand 1401ddda798SBaptiste Daroussin.Ev VISUAL 1411ddda798SBaptiste Daroussinare set, 1421ddda798SBaptiste Daroussin.Ev VISUAL 1431ddda798SBaptiste Daroussintakes precedence. 1441ddda798SBaptiste DaroussinIf neither 1451ddda798SBaptiste Daroussin.Ev EDITOR 1461ddda798SBaptiste Daroussinnor 1471ddda798SBaptiste Daroussin.Ev VISUAL 1481ddda798SBaptiste Daroussinare set, 14913b5b548SBaptiste Daroussinthe default is 15013b5b548SBaptiste Daroussin.Xr vi 1 . 15113b5b548SBaptiste Daroussin.It Ev TMPDIR 15213b5b548SBaptiste DaroussinSpecifies a directory for temporary files to be created. 15313b5b548SBaptiste DaroussinThe default is 15413b5b548SBaptiste Daroussin.Pa /tmp . 15513b5b548SBaptiste Daroussin.El 15613b5b548SBaptiste Daroussin.Sh SEE ALSO 15713b5b548SBaptiste Daroussin.Xr cmp 1 , 15813b5b548SBaptiste Daroussin.Xr diff 1 , 15913b5b548SBaptiste Daroussin.Xr diff3 1 , 16013b5b548SBaptiste Daroussin.Xr vi 1 , 16113b5b548SBaptiste Daroussin.Xr re_format 7 16213b5b548SBaptiste Daroussin.Sh AUTHORS 16313b5b548SBaptiste Daroussin.Nm 16413b5b548SBaptiste Daroussinwas written from scratch for the public domain by 16513b5b548SBaptiste Daroussin.An Ray Lai Aq ray@cyth.net . 16613b5b548SBaptiste Daroussin.Sh CAVEATS 16713b5b548SBaptiste DaroussinTabs are treated as anywhere from one to eight characters wide, 16813b5b548SBaptiste Daroussindepending on the current column. 16913b5b548SBaptiste DaroussinTerminals that treat tabs as eight characters wide will look best. 170