|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
3 G. W$ ^6 L3 k" F( u- g) A/ l5 \
Linux diff命令用于比较文件的差异。
" N3 q* p( u8 {$ x- H! ~ [6 @, Z- j% I# \- O; W" E. L# _# G$ j
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。* p* ?( P' C% k( ?" b8 q) V
; {4 C* @2 _! M$ `+ B# v% @1 v
语法
' X1 o# g- O+ @2 Y- {diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2] S5 W' }8 q9 v" D, s) d
参数:' i" e4 c6 g/ u
/ W5 a$ J9 [0 F: _/ }# K' h
-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。# J6 b( e9 b6 [1 c4 q+ K1 k3 x+ O: M
-a或--text diff预设只会逐行比较文本文件。! i- ~0 r! A, l+ g5 u3 K
-b或--ignore-space-change 不检查空格字符的不同。+ X% K5 p) L$ J/ |7 p
-B或--ignore-blank-lines 不检查空白行。/ t$ C7 }* J0 o/ s
-c 显示全部内文,并标出不同之处。( t" F( ]1 `0 ^ Y* W$ v/ q
-C<行数>或--context<行数> 与执行"-c-<行数>"指令相同。; E, Y9 z2 ~, F% a7 a- \: N0 a
-d或--minimal 使用不同的演算法,以较小的单位来做比较。
; `8 h9 {3 Z, E" P$ R: R3 p3 i-D<巨集名称>或ifdef<巨集名称> 此参数的输出格式可用于前置处理器巨集。
2 ^' O5 H+ M k, o-e或--ed 此参数的输出格式可用于ed的script文件。' D% a. V, M2 h; Y; [
-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
8 a! J2 u' g* p R: t6 i) N-H或--speed-large-files 比较大文件时,可加快速度。8 A* b) W/ Y8 j6 ]2 J6 V& x* H
-l<字符或字符串>或--ignore-matching-lines<字符或字符串> 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
$ ?$ T$ B- E3 Q. O1 y3 O-i或--ignore-case 不检查大小写的不同。
0 ? H _, N/ }-l或--paginate 将结果交由pr程序来分页。8 j8 Y1 Z, D2 G
-n或--rcs 将比较结果以RCS的格式来显示。. V7 A; n# |0 E, L4 W/ p' [! e8 ~
-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
3 @+ d, J' z r, a9 TOnly in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。1 D) @# o, n) L: o
-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
1 T& X! G' i' F8 W: ]& _-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
# u: a$ W3 `* W- W-q或--brief 仅显示有无差异,不显示详细的信息。: b& l" `, @# h
-r或--recursive 比较子目录中的文件。- R8 d2 \( P# P
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
; |4 t4 p( i& d% J3 Q0 J# {$ y-S<文件>或--starting-file<文件> 在比较目录时,从指定的文件开始比较。 F; f8 \5 I* G) G% L% K' @
-t或--expand-tabs 在输出时,将tab字符展开。
+ D1 M" B4 V' a+ i-T或--initial-tab 在每行前面加上tab字符以便对齐。7 ~0 Z1 [2 l% m' \) [
-u,-U<列数>或--unified=<列数> 以合并的方式来显示文件内容的不同。
: k( V9 R( N' }- B% {1 Q B- M-v或--version 显示版本信息。' t+ \% v g; L
-w或--ignore-all-space 忽略全部的空格字符。
0 n* k# L. U' j( u2 Q/ N `1 s1 N-W<宽度>或--width<宽度> 在使用-y参数时,指定栏宽。: x, K! d% z* A/ m* C- x. Q
-x<文件名或目录>或--exclude<文件名或目录> 不比较选项中所指定的文件或目录。% S& j; A5 ^3 r
-X<文件>或--exclude-from<文件> 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。 W1 }, Z& ?. k8 \9 _$ Y
-y或--side-by-side 以并列的方式显示文件的异同之处。$ M% x$ \' w) o- U. Z
--help 显示帮助。
& d8 J8 G" J& X+ i" b--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。& m: s1 M, P: r0 o
--suppress-common-lines 在使用-y参数时,仅显示不同之处。3 i& P/ j% l( W, N, d
实例1:比较两个文件, H9 a M6 `$ g2 d
[root@localhost test3]# diff log2014.log log2013.log
& o5 Y7 f/ j+ \3c3
; l0 X8 N% P% k- o< 2014-030 P# K. s# ]* r, C
---2 [3 J7 {* W! l: c* z
> 2013-03, a' s7 e' z" [! @- h
8c8+ I% t# V; q/ I$ s3 n, |
< 2013-07( Y* m. l- B5 X8 ?
---
F6 ^/ Y- \; t0 D> 2013-08! P( p) G( D) Y* Q- u4 [- V
11,12d10
8 e1 V. m$ f1 x' O J< 2013-11
) N4 E, U+ ^, U9 p: d& T0 h< 2013-12
! F8 u6 s" I; V上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
+ d3 u% I: c$ k- n
5 H2 c N) A! w( {实例2:并排格式输出% D1 k6 S) j/ z( e! N
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
; \3 {- R, @5 o4 C$ A7 g2013-01 2013-010 P6 K" S+ P4 P
2013-02 2013-02( y2 Y) q B0 i+ t0 y
2014-03 | 2013-03
1 {$ j" W2 {6 O( n) E9 c& M( y7 {2013-04 2013-04
% s0 A9 s6 `' `; b0 L, S! I6 K2 Z2013-05 2013-05; K7 v- V2 H- U4 G7 ?2 Q
2013-06 2013-06/ \# R g; H0 w& |* E! Z
2013-07 2013-07
: @ }1 k( u0 F2013-07 | 2013-08$ E, f* y$ [( e2 k- c6 m
2013-09 2013-09
) L7 V. R% y- C3 d+ p2013-10 2013-10/ F9 F+ X7 |4 M
2013-11 <
- V5 O( R; C% g/ O- R& C- F2013-12 <
# Q! R7 g L! ^" `[root@localhost test3]# diff log2013.log log2014.log -y -W 50& Z2 V% T5 S) I
2013-01 2013-01) r; S" k4 e% X
2013-02 2013-02- R, M! p2 ?! j% P6 Z
2013-03 | 2014-03( ^& ?3 D/ P0 \) |: L6 B
2013-04 2013-04
" I% R% d" E3 F8 a% F+ Q2013-05 2013-05
6 d* w2 L; L. A2013-06 2013-06+ d1 c8 v& l0 V
2013-07 2013-07% |, B/ I4 @+ C
2013-08 | 2013-07
: v7 {1 |) e. Y, G2013-09 2013-09% G( e5 G$ O# U. x% [
2013-10 2013-10! ~1 e0 N. O8 K/ |' o$ D$ r; E9 d4 ^ `
> 2013-11
4 u# ]4 H0 m1 J: [" k4 z > 2013-126 P+ P, L5 a7 w$ p% Y
说明:; t0 [" _* W2 `& P9 Q5 _6 ~: s
0 K9 R8 t' ?, t" A# X* A"|"表示前后2个文件内容有不同
/ N0 } x6 T0 R" n1 d3 _"<"表示后面文件比前面文件少了1行内容$ L$ U* w; c& l4 E0 o9 V \
">"表示后面文件比前面文件多了1行内容 |
|