diff.1 (2959B)
1 .TH DIFF 1 2 .SH NAME 3 diff \- differential file comparator 4 .SH SYNOPSIS 5 .B diff 6 [ 7 .B -acefmnbwr 8 ] file1 ... file2 9 .SH DESCRIPTION 10 .I Diff 11 tells what lines must be changed in two files to bring them 12 into agreement. 13 If one file 14 is a directory, 15 then a file in that directory with basename the same as that of 16 the other file is used. 17 If both files are directories, similarly named files in the 18 two directories are compared by the method of 19 .I diff 20 for text 21 files and 22 .IR cmp (1) 23 otherwise. 24 If more than two file names are given, then each argument is compared 25 to the last argument as above. 26 The 27 .B -r 28 option causes 29 .I diff 30 to process similarly named subdirectories recursively. 31 When processing more than one file, 32 .I diff 33 prefixes file differences with a single line 34 listing the two differing files, in the form of 35 a 36 .I diff 37 command line. 38 The 39 .B -m 40 flag causes this behavior even when processing single files. 41 .PP 42 The normal output contains lines of these forms: 43 .IP "" 5 44 .I n1 45 .B a 46 .I n3,n4 47 .br 48 .I n1,n2 49 .B d 50 .I n3 51 .br 52 .I n1,n2 53 .B c 54 .I n3,n4 55 .PP 56 These lines resemble 57 .I ed 58 commands to convert 59 .I file1 60 into 61 .IR file2 . 62 The numbers after the letters pertain to 63 .IR file2 . 64 In fact, by exchanging `a' for `d' and reading backward 65 one may ascertain equally how to convert 66 .I file2 67 into 68 .IR file1 . 69 As in 70 .IR ed , 71 identical pairs where 72 .I n1 73 = 74 .I n2 75 or 76 .I n3 77 = 78 .I n4 79 are abbreviated as a single number. 80 .PP 81 Following each of these lines come all the lines that are 82 affected in the first file flagged by `<', 83 then all the lines that are affected in the second file 84 flagged by `>'. 85 .PP 86 The 87 .B -b 88 option causes 89 trailing blanks (spaces and tabs) to be ignored 90 and other strings of blanks to compare equal. 91 The 92 .B -w 93 option causes all white-space to be removed from input lines 94 before applying the difference algorithm. 95 .PP 96 The 97 .B -n 98 option prefixes each range with 99 .IB file : \fR 100 and inserts a space around the 101 .BR a , 102 .BR c , 103 and 104 .B d 105 verbs. 106 The 107 .B -e 108 option produces a script of 109 .I "a, c" 110 and 111 .I d 112 commands for the editor 113 .IR ed , 114 which will recreate 115 .I file2 116 from 117 .IR file1 . 118 The 119 .B -f 120 option produces a similar script, 121 not useful with 122 .IR ed , 123 in the opposite order. It may, however, be 124 useful as input to a stream-oriented post-processor. 125 .PP 126 The 127 .B -c 128 option includes three lines of context around each 129 change, merging changes whose contexts overlap. 130 The 131 .B -a 132 flag displays the entire file as context. 133 .PP 134 Except in rare circumstances, 135 .I diff 136 finds a smallest sufficient set of file 137 differences. 138 .SH FILES 139 .B /tmp/diff[12] 140 .SH SOURCE 141 .B \*9/src/cmd/diff 142 .SH "SEE ALSO" 143 .IR cmp (1), 144 .IR comm (1), 145 .IR ed (1) 146 .SH DIAGNOSTICS 147 Exit status is the empty string 148 for no differences, 149 .L some 150 for some, 151 and 152 .L error 153 for trouble. 154 .SH BUGS 155 Editing scripts produced under the 156 .BR -e " or" 157 .BR -f " option are naive about" 158 creating lines consisting of a single `\fB.\fR'. 159 .PP 160 When running 161 .I diff 162 on directories, the notion of what is a text 163 file is open to debate.