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

Linux diff命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
6 t$ a( M: ]8 h$ z8 }* {
Linux diff命令用于比较文件的差异。% ?# F% V! }1 p2 Y) G' |) P0 H
: p% y4 I7 ]( G7 w/ P- Z8 Z1 J0 ~
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。) F6 D. h3 f  K0 G2 E( z

5 O- m# D* E$ ~' A( N; Z语法
1 a; y( ?# J5 ~1 G& G6 _% Jdiff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]: h9 w" _+ z" @3 I# Q$ f$ |- M
参数:
  t% h7 i0 l% C3 u7 J
3 O" a' f! O2 v: t-<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。8 z  N+ g" T7 B
-a或--text  diff预设只会逐行比较文本文件。
' ?4 I4 e% C) w( q6 }$ Y5 h6 e-b或--ignore-space-change  不检查空格字符的不同。0 X- a  s( G; O* A
-B或--ignore-blank-lines  不检查空白行。
" ~  q7 K4 Q6 ~: {-c  显示全部内文,并标出不同之处。  W2 C  G# m1 x6 ~
-C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。
3 ?0 d% y( T3 s+ p9 D-d或--minimal  使用不同的演算法,以较小的单位来做比较。
) k0 m: u7 F- f7 u  Q6 t0 |( u-D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。6 u" ~8 E& ?1 D
-e或--ed  此参数的输出格式可用于ed的script文件。* W. F& H* k* E+ P# I# x3 W
-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。% h) u. H" [: Z! B2 y1 [
-H或--speed-large-files  比较大文件时,可加快速度。3 }# z0 t, g' G
-l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
+ ^: E% z# L& c4 Y/ R! G7 Y( {-i或--ignore-case  不检查大小写的不同。
1 g* _- c' Q, W# K+ Y: V-l或--paginate  将结果交由pr程序来分页。
9 j% h# z( D3 D& ]# T-n或--rcs  将比较结果以RCS的格式来显示。
. `, u3 G6 t2 C3 C-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:
. M& I* J; \5 }/ }- g: J; {" y2 YOnly in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。* w# r( {9 O, ]1 _8 t8 k$ H% E
-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。2 p, w% {: h5 L% [  ?$ A
-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。+ R4 C4 F  N$ c
-q或--brief  仅显示有无差异,不显示详细的信息。
0 I$ n7 O3 Z) A% _-r或--recursive  比较子目录中的文件。* ^0 }1 p5 G( K+ k
-s或--report-identical-files  若没有发现任何差异,仍然显示信息。
# @4 b: P  U& o9 [2 a% G' p! n9 @# [-S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。1 `$ Q* F6 [/ ^/ G
-t或--expand-tabs  在输出时,将tab字符展开。
, k6 _8 U/ \8 W9 V0 {6 G+ O-T或--initial-tab  在每行前面加上tab字符以便对齐。, D  j- W: N% b6 |- U# Z; r. ?; |
-u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。- j2 M+ @/ P1 U+ H+ b! s) p
-v或--version  显示版本信息。/ E4 X1 K: F  a! z) h9 X% E
-w或--ignore-all-space  忽略全部的空格字符。* _  e9 h8 `; ?" C2 T8 Z
-W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。6 u4 H- ~" D/ E) C+ [4 J
-x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
3 \+ K" f# b, X7 K& h-X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
7 G* J( J7 e2 p8 `' h* Q  a- V' C-y或--side-by-side  以并列的方式显示文件的异同之处。
) l9 }7 S: Z$ W* D9 X1 Q1 k: \--help  显示帮助。- R- V( A, u2 s2 a
--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。2 c9 b) g  `- p  y% d
--suppress-common-lines  在使用-y参数时,仅显示不同之处。: r0 [/ ]4 b' O
实例1:比较两个文件
3 J. v2 u6 C+ f, c4 y1 Y[root@localhost test3]# diff log2014.log log2013.log % d+ N: S5 B8 F) a0 u: o6 g6 e1 n
3c3
$ q+ O3 p% l2 Q& t3 X< 2014-038 @, C7 O/ T. V7 F5 C0 l1 O" m/ r
---- Y4 `  G+ N) S) R) w
> 2013-03) k/ L8 {0 G3 q6 k  X- m
8c8* @  b6 z% x* ~3 i" c
< 2013-07
% T+ F& v5 e5 k1 y7 j, _---
5 o, I/ u! ^% ^. [> 2013-08
8 {% l7 r1 a: C" Q/ [) d$ t7 e) Z11,12d10. [/ r5 H7 Z, F2 }% H: b+ B
< 2013-11+ V* [6 Q! k8 X  T: n
< 2013-120 w% C% K: b4 T9 q/ O
上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
- G. s' \7 Y( H& [3 [/ Y) }
2 B# j5 h2 D- E0 y) o实例2:并排格式输出4 O( C( S+ }: w, j9 W& h6 E
[root@localhost test3]# diff log2014.log log2013.log  -y -W 50
+ t0 h! s$ H( {1 o6 `2013-01                 2013-01) u$ Y1 a; p! o% m0 C" {4 G" @
2013-02                 2013-02
* P$ `6 K& A7 T6 W3 Y! [2014-03               | 2013-03: u9 v7 I) i" ?4 Y' K- x$ \( q
2013-04                 2013-04: y1 R0 m+ D& S
2013-05                 2013-05
3 L  y. {  y" Q" `7 m# ?- j2013-06                 2013-06
+ r* Y. [* p+ t; k, I/ f2013-07                 2013-07/ `, w7 L0 u3 W0 E/ M& X- o. A3 [
2013-07               | 2013-08
1 M, U+ D5 R  `2013-09                 2013-09
. A& @+ x) T, m/ f0 i2013-10                 2013-10" D5 S1 ?1 F3 ?" V: n
2013-11               <
3 `* }- b8 B% ^# o& B6 W6 s7 x7 u2013-12               <
& j% u- B) t4 [' q[root@localhost test3]# diff log2013.log log2014.log  -y -W 50) U) U5 g1 ^2 a/ f  c
2013-01                 2013-01. }2 ~" @( T& z1 O5 N
2013-02                 2013-02
) X& N( Y$ ~0 d/ X4 e3 B% Q2013-03               | 2014-03$ S$ `/ k. r6 |+ |* b# }8 V; y5 z* G
2013-04                 2013-04
$ I: c0 y2 ^( L2013-05                 2013-05
! P- J6 q+ s4 ?0 G5 h6 x3 `2013-06                 2013-06
3 a1 j% n6 I/ b6 @: R2013-07                 2013-074 |* g( v3 K- j/ m
2013-08               | 2013-07
- l2 s# m" Y/ |6 ^) D2013-09                 2013-09
$ E# v; L5 z# m0 X$ a2013-10                 2013-10& j0 O; u3 N0 @  N3 c' V
                      > 2013-11
. w+ K& N: c( {; }4 L                      > 2013-124 Q% @" F8 G" |+ _: N" I8 o
说明:6 h5 a& D) i$ Q7 N5 w* e8 J# V

$ H) l0 d0 j' `6 M"|"表示前后2个文件内容有不同
/ \% D% G" L4 {"<"表示后面文件比前面文件少了1行内容) _% N/ G8 \; Z, @' K0 h' @2 P
">"表示后面文件比前面文件多了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 04:42 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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