找回密码
 注册
关于网站域名变更的通知
查看: 712|回复: 3
打印 上一主题 下一主题

Linux diff命令

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-7-5 14:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

* B& b# {, `* a6 h  }9 T' dLinux diff命令用于比较文件的差异。
6 s) a  A' P& }0 P' {; \6 y+ c8 O2 ?, V
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
& s3 s% ?: T; W# y' T* |: A( z+ `0 r6 X
语法& N  d/ w: L% I& V8 a
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]# J# a4 t) h7 Y3 G9 U  `7 U
参数:  Z! P1 ?, q. S
+ o  ]6 U2 S" T9 D/ O; c
-<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。# R5 E. S3 l- o0 @0 k( v# L/ Y
-a或--text  diff预设只会逐行比较文本文件。5 {# K5 p$ ^' ^8 }) W
-b或--ignore-space-change  不检查空格字符的不同。
% s" k' \5 m6 I: @" K+ r$ g* V-B或--ignore-blank-lines  不检查空白行。
/ U2 A5 R9 q" Z) M+ {-c  显示全部内文,并标出不同之处。! s: d" d: i4 r' I
-C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。
9 c& L2 c' h6 }) H0 ^$ h  i8 T7 ^3 [-d或--minimal  使用不同的演算法,以较小的单位来做比较。
( R9 B1 P. {7 Z( Y) Y-D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。' h/ r" a: h$ ]1 p
-e或--ed  此参数的输出格式可用于ed的script文件。( g4 P* \$ ]" w1 Y  W& @" T4 ^
-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
! `" v; m9 Y6 B3 ~+ k8 _-H或--speed-large-files  比较大文件时,可加快速度。, P) M1 }0 t) n
-l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。6 Y& j1 @1 R* z/ H4 q
-i或--ignore-case  不检查大小写的不同。
; x3 T% E' T, U4 N, |-l或--paginate  将结果交由pr程序来分页。
( [1 d1 a6 P) \4 X9 ?-n或--rcs  将比较结果以RCS的格式来显示。
( r9 n4 ^  o" w5 L4 [% \! P-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:8 V' n9 L% w+ I! E
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
& W. O: \1 [6 O8 q, _0 w-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。* B/ n5 P3 B& n% Q8 o9 M  r& t
-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
% e9 i% f7 b9 r7 i( x" o" c-q或--brief  仅显示有无差异,不显示详细的信息。
- `5 ]2 W+ M' \+ P. }! S  M0 |1 j-r或--recursive  比较子目录中的文件。0 R: h* L: L5 O2 G% u& p
-s或--report-identical-files  若没有发现任何差异,仍然显示信息。
: s  Z/ d/ X9 w. n9 m' V-S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。
  i0 L' ^8 h+ B' y! Y; s9 i) }-t或--expand-tabs  在输出时,将tab字符展开。
! R, U3 n6 f' O  Z-T或--initial-tab  在每行前面加上tab字符以便对齐。) f1 ]# J* Q1 [& E! T1 g2 b. |
-u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。0 f: o- S$ v7 J. s% N0 Z& [
-v或--version  显示版本信息。  l7 e8 N  h" Z5 j0 _( F) ]; J
-w或--ignore-all-space  忽略全部的空格字符。, q, H5 y! H! E5 e! Y7 _% S
-W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。
7 d# |% k; ^6 l: t% Y-x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
" n' ]& t4 t1 I" f" R" w$ f2 R: o-X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
" U8 s8 [; C1 \& a- z( s-y或--side-by-side  以并列的方式显示文件的异同之处。
8 R% m* g2 E, ]4 L--help  显示帮助。
6 u5 d; I' {! _) e9 u2 K4 p+ J--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
1 R- Q. {& P5 h- g* {; F/ d3 X9 d--suppress-common-lines  在使用-y参数时,仅显示不同之处。
) y& q) }- F/ o/ t+ Y: @6 `$ @: `实例1:比较两个文件( V% f6 b% o/ |, {, F: `( S' S
[root@localhost test3]# diff log2014.log log2013.log
# z5 ^2 X+ m( ?: x0 @- b% e- O3c3
' `4 G( f$ f, Y" j! ^! B< 2014-03
* a( ^2 r8 |# L---
6 ]1 C, e' t! `' J5 [' n3 a1 p4 x. l. `> 2013-03
7 ^* y, X" Q" V# w8 C, c5 k8c8
$ t2 s  j* ^, r8 Z6 q/ F, M< 2013-070 B  j4 M6 g* `& Y" @
---
0 d, W8 w' v" f9 `: U% J6 o' T> 2013-08
5 f0 f* b2 \: |- U# }% r8 X11,12d10
5 N- e' [. p9 Q" ~# Q6 s' K3 W< 2013-11
' w9 J7 v& J) |& I/ l< 2013-12
# Q4 n+ i1 \" o/ V: A上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。; |, u# l' l' ]2 @
. X/ X) P, v3 v# d; Q
实例2:并排格式输出
6 ^$ {0 E$ e. W4 p* s[root@localhost test3]# diff log2014.log log2013.log  -y -W 50
: M: v( X/ }; p7 {" `2013-01                 2013-01
, S5 a) F5 J5 q& |' I- F2013-02                 2013-02
) S8 ?% i+ H# B- J0 {. r0 `; {2014-03               | 2013-03. s) T0 p! f6 h
2013-04                 2013-04
' R3 B, l2 E$ y5 R6 Z: I! m2013-05                 2013-058 q) ?5 Y4 N5 x! z! k
2013-06                 2013-06. i5 K8 u7 A% a/ s: s# U( J1 d% Z
2013-07                 2013-07
0 w. n& k3 t% h7 `  D8 {2013-07               | 2013-08
! i) }1 w) b9 }4 \3 C  `9 z2013-09                 2013-09
' l: j4 c+ q: R3 N1 V0 h. t2013-10                 2013-106 c8 A; Y6 I8 m/ S! Z
2013-11               <
, i8 [* o5 Y5 ~) q7 M$ o8 G2013-12               <
  o$ g& ?9 t! ~. B8 U% t[root@localhost test3]# diff log2013.log log2014.log  -y -W 50
; A) ?; ~4 Z7 H( Y2013-01                 2013-01% ]8 n3 t9 R9 O5 i- F+ p
2013-02                 2013-02: F6 m) U/ m+ d8 q2 v' r% N. i4 i
2013-03               | 2014-031 x+ h) F4 O" E
2013-04                 2013-04' f. D8 c1 t0 t9 l" m
2013-05                 2013-05
# u' p6 A9 [) g( [; z+ B; ~2013-06                 2013-06
/ a4 O- j' V9 ^( B& l) Y; r' |2013-07                 2013-07( }( b9 P- }$ e: E- V  o: Y) Y
2013-08               | 2013-07
: r( \0 F6 \; Y: l2013-09                 2013-09: T- i  j1 b3 j! D' c' P; P
2013-10                 2013-101 e' e7 ^  n3 I; `# J
                      > 2013-11* C* i8 T# Z3 |" X, Z
                      > 2013-12
7 W5 p# S2 T" Y6 j说明:( ?; R! e2 T* [9 `; G

/ [" t% I9 G! {% v"|"表示前后2个文件内容有不同
+ A6 r" Q* T3 Z# Q* b"<"表示后面文件比前面文件少了1行内容! M" ]% z( s  F+ c5 o
">"表示后面文件比前面文件多了1行内容

该用户从未签到

2#
发表于 2021-7-5 15:07 | 只看该作者
Linux diff命令

该用户从未签到

3#
发表于 2021-7-5 18:03 | 只看该作者
Linux diff命令

该用户从未签到

4#
发表于 2021-7-5 18:06 | 只看该作者
Linux diff命令
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 08:20 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表