diff 命令 – 比较文件内容差异

diff 命令的功能是用于比较文件内容差异。如果有多个内容相近的文件,使用 diff 命令快速定位到不同内容所在位置就再合适不过了!

目录

一、语法格式

二、常用参数

三、命令实战

3.1 以正常格式输出需要更改的比较结果

3.2 以正常格式输出需要增加和删除的比较结果

3.3 以上下文格式输出比较结果

3.4 以合并格式输出比较结果

3.5 输出比较结果不区分大小写

3.6 以并列方式显示异同之处

一、语法格式

diff [参数] 文件1 文件2

二、常用参数

-b不检查空格字符的不同
-W指定栏宽
-c以上下文格式显示
-u以合并格式显示
-y以并列的方式显示文件的异同之处
--brief仅判断两个文件是否不同

三、命令实战

3.1 以正常格式输出需要更改的比较结果

 [root@linux1 ~]# diff a.txt b.txt 
 3c3
 < dddddd
 ---
 > eeeeee

3c3:左边的"3"表示 a.txt 第3行有变化,中间的"c"表示变动模式(change),其他模式还包括:增加(a,代表addition) 和 删除 (d,代表deletion), 后面的"3"表示变动后变成 b.txt 的第3行 

< dddddd:小于号表示从 b.txt 第3行缺少该行,"dddddd"表示该行内容

---:用来分隔a.txt 和 b.txt

> eeeeee:大于号表示 a.txt 第3行缺少该行,"eeeeee"表示该行内容

3.2 以正常格式输出需要增加和删除的比较结果

 [root@linux1 ~]# cat a.txt b.txt 
 aaaaaa
 bbbbbb
 dddddd
 cccccc
 eeeeee
 ​
 aaaaaa
 bbbbbb
 eeeeee
 cccccc
 ​
 [root@linux1 ~]# diff a.txt b.txt
 3,4d2
 < dddddd
 < cccccc
 5a4
 > cccccc

3,4d2:"3,4"表示 a.txt 的第3行和第4行,中间的"d"表示删除模式(deletion),"2"表示 b.txt 的第2行,整体意思是删除 a.txt 的第3行和第4行以匹配 b.txt 的第2行

5a4:"5"表示 a.txt 的第5行,中间的"a"表示增加模式(addition),"4"表示 b.txt 的第二行,整体意思是 在 a.txt 第5行后添加 b.txt 第4行内容

3.3 以上下文格式输出比较结果

 [root@linux1 ~]# diff -c a.txt b.txt
 *** a.txt   2023-04-20 19:06:02.858032131 +0800
 --- b.txt   2023-04-21 14:25:41.067584874 +0800
 ***************
 *** 1,5 ****
   aaaaaa
   bbbbbb
 ! dddddd
   cccccc
   
 --- 1,5 ----
   aaaaaa
   bbbbbb
 ! eeeeee
   cccccc

***:表示变动前文件(a.txt)

---:表示变动后文件(b.txt)

*******:文件的基本情况和变动内容分割线

*** 1,5 ****:文件 a.txt 从第1行开始连续5行

文件内容前标记位,如果为空表示该行无变化,如果是"!"表示该行有改动,如果是"-",表示该行被删除,如果是"+"表示该行为新增

--- 1,5 ----:文件 b.txt 从第1行开始连续5行

3.4 以合并格式输出比较结果

 [root@linux1 ~]# diff -u a.txt b.txt
 --- a.txt   2023-04-20 19:06:02.858032131 +0800
 +++ b.txt   2023-04-21 14:25:41.067584874 +0800
 @@ -1,5 +1,5 @@
  aaaaaa
  bbbbbb
 -dddddd
 +eeeeee
  cccccc

---:表示变动前的文件(a.txt)

+++: 表示变动后的文件(b.txt)

@@:表示起首和结束

-1,5:"-"表示第一个文件(即 a.txt)"1"表示第一行,"5"表示连续5行,合起来的意思是第一个文件从第1行开始连续5行

+1,5:"+"表示第二个文件(即 b.txt)其余同上,合起来的意思是第二个文件从第1行开始连续5行

-dddddd:"-"表示第二个文件(即 b.txt)缺少的行 +eeeeee:"+"表示第一个文件(即 a.txt)缺少的行

3.5 输出比较结果不区分大小写

[root@linux1 ~]# diff -i a.txt b.txt 
[root@linux1 ~]# diff a.txt b.txt
 1c1
 < Aaaaaa
 ---
 > aaaaaa

3.6 以并列方式显示异同之处

[root@linux1 ~]# diff -y a.txt b.txt 
Aaaaaa                                  |    aaaaaa
bBbbbb                                  |    bbbbbb
eeeeee                                       eeeeee
cccccc                                       cccccc
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值