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

Linux diff命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
7 H1 x! j) I& n- n9 q: E
Linux diff命令用于比较文件的差异。
* |, D: |) O* H* t- d
' }# b6 p2 l3 Adiff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
- U$ u" M+ V9 W# h
5 y9 a  q3 A# s+ A8 w语法
1 G& o  ?4 T& [' Vdiff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
! R% I# ?# C, C# {参数:
! c) C# d/ H* ^- B$ p0 `* E" A* I) }! u
: s- F8 f4 d+ E# m. X: k-<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
) g: ^+ F. V& U$ h0 _! @-a或--text  diff预设只会逐行比较文本文件。0 D# ^6 T$ h  w. k, a
-b或--ignore-space-change  不检查空格字符的不同。1 n' I# t: l3 E$ N' j4 {
-B或--ignore-blank-lines  不检查空白行。
& Z! `  E8 |2 c+ p7 c0 [4 L: ?-c  显示全部内文,并标出不同之处。
$ l5 n! v. ~0 D$ k" n0 \-C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。
6 Y( T- I4 c/ N/ [/ y+ W8 |-d或--minimal  使用不同的演算法,以较小的单位来做比较。) W) k! ?# c/ g
-D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。
. |& D- V- v; U$ q5 |0 F-e或--ed  此参数的输出格式可用于ed的script文件。
! S" R) h& s1 o6 s" D-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
) j3 D$ k/ ]- t-H或--speed-large-files  比较大文件时,可加快速度。
2 b+ x) M: w1 f. P/ {+ {" C-l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。) \: d. K# V$ G9 m6 I/ V
-i或--ignore-case  不检查大小写的不同。- x+ ]% m% l; J5 S" l. x$ E
-l或--paginate  将结果交由pr程序来分页。
; p* f- h6 i. e-n或--rcs  将比较结果以RCS的格式来显示。4 P: a5 P- i* n( M  `; W' s7 H# O
-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:0 `8 e# Y. g4 E
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
" _/ Q; o0 p) d" D: T/ T! N5 i-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。# c/ H/ A$ [* T, r1 |2 u
-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
$ |  E3 n, D7 S" m' L" Q-q或--brief  仅显示有无差异,不显示详细的信息。
& `0 x5 ^$ x8 E-r或--recursive  比较子目录中的文件。
5 R; i# I% l# }  p0 S-s或--report-identical-files  若没有发现任何差异,仍然显示信息。- i! O7 {1 z* k9 W
-S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。
" D, Z. E% k6 t3 S) y-t或--expand-tabs  在输出时,将tab字符展开。) Z  {9 K& o$ |+ g8 M
-T或--initial-tab  在每行前面加上tab字符以便对齐。
& Y7 N7 l& G- ~! F' Q4 S-u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。+ Y: [4 N, ^  a3 c9 {5 K
-v或--version  显示版本信息。
. e3 Q; r' f9 f$ y! E5 v-w或--ignore-all-space  忽略全部的空格字符。" p  M1 c( A, s) {3 E
-W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。( F* b7 \% ^- ?
-x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
* Y! m( [+ \' k% H; S- i' ~5 W7 g-X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。3 H5 I* I# c7 D
-y或--side-by-side  以并列的方式显示文件的异同之处。
. \1 @2 f1 P4 r2 O5 U% d' o8 o9 Q7 V1 y--help  显示帮助。7 A" ]4 ^  }6 c: j. F) O; ~
--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。9 x$ D! `0 }  W7 g, T5 n
--suppress-common-lines  在使用-y参数时,仅显示不同之处。' Z' T: t+ w& L' C
实例1:比较两个文件8 O3 G# a$ q7 S5 S7 X* |  r' q6 W  D
[root@localhost test3]# diff log2014.log log2013.log
$ c6 A- K( ~# m4 A3c3! J# `( M/ q* z) B% y  |
< 2014-03
& |) V3 H) k9 @( F+ |& l---+ i  O2 _6 G, k3 x6 |- g
> 2013-035 ]: N6 I% a2 M3 V  _7 {# }' S. P
8c8, t% [  `: a  ~9 x& b; e! V: W
< 2013-07
7 K" n- `$ n8 i3 M4 i% j; X---" w  i9 c6 q. V
> 2013-08
( I5 |* W. q' |* L1 @6 E3 C11,12d10) y6 Y6 A9 |* i5 f  k3 B: y8 X
< 2013-111 g* O/ [$ \7 G0 i" X3 Q. U5 j
< 2013-12
3 g! j2 r8 i( m9 S0 x' M上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
$ m8 E5 _4 N# G4 ^4 k$ {3 u/ c3 l( J, j: [: j
实例2:并排格式输出
1 l# ^$ @# a& L7 z2 _: e$ S. c[root@localhost test3]# diff log2014.log log2013.log  -y -W 50* r/ ?- f  `3 `5 C2 n6 ?. d
2013-01                 2013-01
7 S* I* b6 g! @, ~2013-02                 2013-02! `+ A& h! C* M
2014-03               | 2013-03
4 o* U0 @) h5 c7 n: g; U2 @+ r" K2013-04                 2013-04
0 F# Z+ m: j0 g3 q2013-05                 2013-059 B, a- b% n/ K/ I! [3 D7 T' C9 I( k
2013-06                 2013-06
5 Q  _- _; P& L2013-07                 2013-07
& t& ]' O( I! A! z8 C- h2013-07               | 2013-08. M3 X& m2 R! }; s) {0 z8 L
2013-09                 2013-097 j" N! j6 M4 x* R( e
2013-10                 2013-10$ S0 d  Y( R2 ~) {! j& t$ N) d
2013-11               <
7 v( W3 i2 P6 E- H; \2013-12               <6 z& ]& p& `# W& j# J! P) A
[root@localhost test3]# diff log2013.log log2014.log  -y -W 50
, J( X! ]% K6 {1 U2013-01                 2013-01
- e1 k8 c7 l! Q2 a2013-02                 2013-02& F: _% h0 i7 p8 S; r
2013-03               | 2014-03
/ Y6 h; g" J5 f6 X7 \* H  V/ P2013-04                 2013-04
7 H! v+ i" R: t2013-05                 2013-055 ^6 O! I4 e! D6 i+ u/ p
2013-06                 2013-06
: K/ f9 w+ ]1 f( Q, Z6 h2013-07                 2013-07
" O8 f6 [0 V' g1 D2013-08               | 2013-07! s- c, L; T$ I4 M$ I
2013-09                 2013-09
6 u+ {' U, \2 C9 {2013-10                 2013-10& H6 k$ \7 J5 h0 Z/ i
                      > 2013-11
6 d  ]: Z$ S- g                      > 2013-12
. ?& g4 I7 ?' p& n9 h/ \# P说明:- K  i5 n% n: X6 M+ ~9 o& Z
! h$ Y* p  ?. r# Z
"|"表示前后2个文件内容有不同
: H2 P" W& J! D/ E"<"表示后面文件比前面文件少了1行内容3 d  S4 n) O& O" z: E4 v0 Z
">"表示后面文件比前面文件多了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 13:16 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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