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

Linux diff命令

[复制链接]

该用户从未签到

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

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行内容

该用户从未签到

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 05:40 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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