|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! [- h: E/ v0 C, lLinux diff命令用于比较文件的差异。
6 h0 U& v% L3 b1 x5 O' Q9 v9 d @5 ^& z& [5 Q& x e% F
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
8 Z$ M b _. c+ C& V- ?, m5 D- s5 p" f8 Q' E/ N2 j- y) L
语法
2 l7 g) U- z9 Sdiff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
Z& c* K; o: M参数:4 N$ Q7 t7 V4 p, X8 L. q, T
; u# ]2 {' ` P$ C& \/ s-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。) a' j% [; k$ ]
-a或--text diff预设只会逐行比较文本文件。; ^7 P. R8 _9 h0 |' P
-b或--ignore-space-change 不检查空格字符的不同。
3 j4 b3 ]4 ` k& U. E, k3 B( o& G+ \-B或--ignore-blank-lines 不检查空白行。
) C) O: `: B7 Y/ a-c 显示全部内文,并标出不同之处。
* v# C7 W/ r6 d) Q+ d-C<行数>或--context<行数> 与执行"-c-<行数>"指令相同。! K. |% L5 ~" t. N: h# i9 D
-d或--minimal 使用不同的演算法,以较小的单位来做比较。+ r* @) i* f# d! k) ~
-D<巨集名称>或ifdef<巨集名称> 此参数的输出格式可用于前置处理器巨集。
7 C% ^) m; S4 S1 {; M-e或--ed 此参数的输出格式可用于ed的script文件。
# r( f% e+ E" a' R1 Y2 c2 O-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
; j* _7 [2 X2 ]+ U6 l-H或--speed-large-files 比较大文件时,可加快速度。
. P1 `3 b- [# J7 i-l<字符或字符串>或--ignore-matching-lines<字符或字符串> 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
# v& z: ~1 |; n. B) N4 k# G8 ^-i或--ignore-case 不检查大小写的不同。
2 t9 v3 ] w4 \1 L' u& ^3 V-l或--paginate 将结果交由pr程序来分页。9 `+ {0 h$ @" C
-n或--rcs 将比较结果以RCS的格式来显示。, v3 l1 N8 w$ B: `' |9 s2 W i
-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
" G- f' t0 U% POnly in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
: M t! }: [' V-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。; v# o3 W1 s# d8 c5 g1 b
-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
+ J9 {) ^( i- z: z-q或--brief 仅显示有无差异,不显示详细的信息。4 R0 N2 ^; T7 f0 k+ L5 G
-r或--recursive 比较子目录中的文件。& D* B" L( _+ ^9 ?2 ~. A: |) p. u
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
- ?4 U6 T! ~4 Z n2 @ e, ~0 Y3 ]-S<文件>或--starting-file<文件> 在比较目录时,从指定的文件开始比较。0 L; e" g9 n5 O( G5 j0 i
-t或--expand-tabs 在输出时,将tab字符展开。
. j( x0 r6 u) A; r V0 g-T或--initial-tab 在每行前面加上tab字符以便对齐。
- {5 l8 m e% h! R5 d-u,-U<列数>或--unified=<列数> 以合并的方式来显示文件内容的不同。! U6 i- u& c5 m- g8 d+ @/ T
-v或--version 显示版本信息。. b+ e. f. l# u0 _2 k8 V' W0 t% j
-w或--ignore-all-space 忽略全部的空格字符。
4 s) \7 y1 T. Q. q5 x' K7 T) ~! N+ L-W<宽度>或--width<宽度> 在使用-y参数时,指定栏宽。
o9 E: {5 d% d: J: `8 `-x<文件名或目录>或--exclude<文件名或目录> 不比较选项中所指定的文件或目录。: W/ c1 T+ w" f w/ D3 ^0 T* o
-X<文件>或--exclude-from<文件> 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
& G! a; L! C7 C' w-y或--side-by-side 以并列的方式显示文件的异同之处。* n% K$ m5 N" N* J8 v
--help 显示帮助。5 u6 K+ b% t) f* a) i5 a0 V
--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
7 V' z5 n I% j) b' `; \# K! F--suppress-common-lines 在使用-y参数时,仅显示不同之处。
; j0 W# b0 V1 ?实例1:比较两个文件
% A( i9 P+ C, y% F8 Y! u[root@localhost test3]# diff log2014.log log2013.log
- e- f+ t7 S/ S+ @. M, V3c3
5 h9 }0 d5 Z7 l2 @- H5 p# r) G< 2014-03, r; C: i- s& h% ]
---
E: n, h" G( P$ c+ B( q9 P> 2013-03
+ Z- e/ }6 e, W8c8, e" a1 X4 }& a; t; _
< 2013-07
) k1 s3 n2 F2 Y2 ^---
6 W% b8 v7 z8 U/ g; g; E' o> 2013-08
, t% E+ B1 x% P, Y" d( w- p11,12d10
8 L& t$ B8 b2 {8 P. Z3 Q< 2013-11
1 u0 f/ a3 P0 q' S< 2013-12# s0 U$ k* e( m' g+ Z& b
上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。( F8 d5 [5 R! F+ k. [* u
" q3 |3 v, n! k7 Y$ N1 W
实例2:并排格式输出& J4 P; a& _5 J! g
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
( e# w6 _8 S5 C; H8 u2013-01 2013-01* R; I" X% j- G4 s/ ^3 T* l
2013-02 2013-02
4 @- P" t( L: W/ [9 L% _2014-03 | 2013-03% x$ E* [: r' r# N: C
2013-04 2013-04
3 h0 }- y4 ~1 z; a- H2013-05 2013-055 K3 o. X6 R, b3 p" K# g
2013-06 2013-06
+ g0 |1 H$ c$ p( U; W9 G1 {8 \2013-07 2013-079 r9 W l1 x0 z* t5 K
2013-07 | 2013-084 |& `* P) M/ y& O% q" x: V" ?
2013-09 2013-09$ D0 M1 P) ^& D' \4 z$ C! y
2013-10 2013-10& X; |3 W1 G* h, ]
2013-11 <0 Z/ x1 ^6 Z& C
2013-12 <
3 u/ T, M" @6 A8 [7 D4 H5 d3 k[root@localhost test3]# diff log2013.log log2014.log -y -W 50
0 H9 ~* y- w$ t2013-01 2013-01
/ [+ [% C( R+ z4 G2 C( Y: Z! s3 Q2013-02 2013-02
! q! z, D% t: H' R( K5 } |2013-03 | 2014-031 U9 `+ ]4 ]: V4 ?# ]% }
2013-04 2013-04
7 ^5 g$ K: X- ?8 D5 ?/ z2013-05 2013-059 Y+ K6 C4 V- ^+ L: l7 j
2013-06 2013-06! l3 B6 }7 c. j; ^
2013-07 2013-070 B" R( k$ y7 F
2013-08 | 2013-077 V, j" P& R& d) r$ G- f9 B
2013-09 2013-09' K( m) o, ~# n! L- N
2013-10 2013-10
* Z1 S0 a8 l# m5 K > 2013-11
4 e7 I, d* M7 M! [/ V/ F! {! ? > 2013-12
- n1 G5 z0 _+ | i说明:
7 M' X9 h' e( C% p( g1 t
" w3 i0 @) ^2 l- n. z( u0 G5 M"|"表示前后2个文件内容有不同4 Q# \' j& }% J% a
"<"表示后面文件比前面文件少了1行内容
1 C8 ]1 P6 p2 H" j8 Q: x6 O- J">"表示后面文件比前面文件多了1行内容 |
|