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

Linux diff命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

6 w# F+ Q, T/ A( w* G" t( b. C/ pLinux diff命令用于比较文件的差异。3 y1 |$ j* f+ |4 U; \. t

2 `0 A, C4 ?% V* Jdiff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。+ s3 w- e% J* Q& ^6 A( B

0 U9 A4 X8 g5 u4 p% |语法
+ q- N2 I( p% R' qdiff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]1 h0 k8 u) Z! d; D! P; @# k; L
参数:
) i; C5 N' S% y" o2 I5 L3 w7 e
" T4 k  V6 ^' n' C" [-<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。! V. [' P9 W  d
-a或--text  diff预设只会逐行比较文本文件。1 D% U6 Z8 \! I
-b或--ignore-space-change  不检查空格字符的不同。0 C9 a1 Z! S5 _0 s! u
-B或--ignore-blank-lines  不检查空白行。7 k: i( [% i* g. u1 k+ U  k
-c  显示全部内文,并标出不同之处。
/ v& N$ i) f! ~2 L-C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。* ~# o  k4 t. N& [. d+ S3 P7 u* V
-d或--minimal  使用不同的演算法,以较小的单位来做比较。2 M1 j2 N3 c3 n9 N
-D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。
3 f! n9 ?& O4 n& d+ G-e或--ed  此参数的输出格式可用于ed的script文件。; G+ n) b2 O1 |( y7 @4 N
-f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。( B& ]# P4 u# O8 r6 Z) X. _
-H或--speed-large-files  比较大文件时,可加快速度。
6 T5 F* i9 o: w0 R& R/ O  d-l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
" J# x1 A! f1 @8 r/ E- ^- w-i或--ignore-case  不检查大小写的不同。# K% N/ ?* r; p; c' o) z5 ]6 j
-l或--paginate  将结果交由pr程序来分页。. |: Z% m8 ^% ^( G# B
-n或--rcs  将比较结果以RCS的格式来显示。
6 D( W5 j- {# D9 _-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:/ q  c# ~( L6 u' v1 Q
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。5 T/ T6 {  |6 O* S' x8 n* {2 U
-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
! L- X! e6 Y4 l2 W4 g/ J  E! ?3 [# e-P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
4 R. R& j4 _8 C" t-q或--brief  仅显示有无差异,不显示详细的信息。
2 Q# Y; |' e( k) F6 t- s. Z-r或--recursive  比较子目录中的文件。
" O% `; q) X" `; e& U+ n-s或--report-identical-files  若没有发现任何差异,仍然显示信息。0 Q( o( `8 R8 x3 k8 h
-S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。& B, Z' f/ K) @( @
-t或--expand-tabs  在输出时,将tab字符展开。) i1 m9 b# O, q7 ?0 J8 j/ F: P
-T或--initial-tab  在每行前面加上tab字符以便对齐。, H1 `0 n' N& f3 t4 q) f" {; S/ t
-u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。
2 \& C8 M' `2 ~( c8 h  Y; T-v或--version  显示版本信息。+ h. B/ u, H8 f# ~8 P
-w或--ignore-all-space  忽略全部的空格字符。' L& c( L( n" y7 R! r. P8 Q+ R
-W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。- M" R! F( Q$ X. O4 Y
-x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
5 {1 k; }8 C/ Q: x-X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
5 p4 W" A/ O2 t1 g0 s2 f-y或--side-by-side  以并列的方式显示文件的异同之处。$ c% `' }+ h1 V
--help  显示帮助。
1 a% m4 g: k  N% I- j3 ~--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。2 |  _" ?2 Q- L, y0 D
--suppress-common-lines  在使用-y参数时,仅显示不同之处。- ?: C' v3 ~4 F% ?: M* u" G0 E2 _
实例1:比较两个文件
, s. d# Q3 g& L[root@localhost test3]# diff log2014.log log2013.log ' e9 P/ z( B& e2 i) a
3c3
& L& b+ D* l7 |< 2014-030 h- v% n3 r: B# e9 K+ N
---
7 @' c4 C! ?6 s  ]( U> 2013-03; @& u$ B2 o/ m; {* K+ H: q
8c8
. n6 i" b( `. @  \< 2013-07
1 B' D) ?) v9 j---
+ e3 g% c6 \& K2 m( J& g& M> 2013-08
1 R4 J  ]* q! ]' @11,12d10
( W) M8 |8 i: ^. u< 2013-11
5 M! p) F$ f3 @1 F< 2013-12
5 V6 S3 x5 W( a$ J上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
0 \( c( x. W3 B. t+ x4 K
8 t4 C7 _. m# o8 F; i实例2:并排格式输出' _- _* [+ V; a: A6 F
[root@localhost test3]# diff log2014.log log2013.log  -y -W 50
( D/ w0 c( D6 L6 b2013-01                 2013-01% E  J  Y" X0 n' @
2013-02                 2013-02
2 o5 f8 d& g& `5 D# }2014-03               | 2013-03
7 s/ X5 ?+ |9 g0 ~, l6 b( q0 |2013-04                 2013-04& z6 C! r# u5 N. w$ B, ~
2013-05                 2013-05
" q  Z, b3 g8 H7 a8 _; c2013-06                 2013-06) M- w' [0 Z. S2 m
2013-07                 2013-072 _% y% t: M9 d" h$ N% d) r6 l
2013-07               | 2013-08
8 z5 n0 s+ L" ]$ }5 v+ q2013-09                 2013-09) z5 ]# I( ^$ Z( a
2013-10                 2013-10
4 n$ a+ L0 Z" `5 x3 |' B3 V6 L( r  Z2013-11               <
: n& `+ h$ L  s9 }% L' d2013-12               <
: `) M1 c5 ]: X9 A4 l( M[root@localhost test3]# diff log2013.log log2014.log  -y -W 50
& _2 d0 _' w% {9 `4 ?/ d5 e2013-01                 2013-013 s4 d% Q' W  C' A7 Y7 J
2013-02                 2013-02
- ?5 b& p* }& S& C  l2013-03               | 2014-031 }' i- s3 x2 J6 c
2013-04                 2013-04
( \, l) |) H7 W1 o6 ]. S  V2013-05                 2013-05
, P/ n6 C5 o3 y5 X3 P; D% E2013-06                 2013-06
' ~4 R# b+ E* d6 b8 M2013-07                 2013-07
/ N" [$ C/ m+ _4 k3 L/ e- J* Y2013-08               | 2013-072 w5 E$ w% s7 j# X
2013-09                 2013-09
# B! e3 c! L  u' M, d2013-10                 2013-105 s) n+ `# X- B* Q* A3 p8 u3 L
                      > 2013-11- X. Y5 ?7 I: K) U" O5 m. y' ]
                      > 2013-12
1 p3 i! h) s; d- A0 m说明:
( ]: t6 Q. r2 R8 n& w, i
8 l( k6 K( b. E) [" {, h# J"|"表示前后2个文件内容有不同
7 S, S% ~" A3 Q, B"<"表示后面文件比前面文件少了1行内容
# `7 s8 M) c, Z  T6 |4 ?; Y, I">"表示后面文件比前面文件多了1行内容

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:21 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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