一点关于 diff 的总结

# diff 的使用

1
$ diff <文件1> <文件2>

# diff 的输出

# diff 的三种格式

  • 正常格式
  • 上下文格式
  • 合并格式

# 正常格式

  • 对比两个文件,都是是 6 行。一个每行都是 ab, 作为文件 1,另一个将第四行的 ab 改为 ac,作为文件 2,如下所示
1
2
3
4
5
6
ab
ab
ab
ac
ab
ab

比较两个文件:

1
$ diff <文件1> <文件2>

比较后输出正常格式下的结果:

1
2
3
4
4c4 #意为文件1的第四行变动后成为文件2的第四行。字母可以说是change,addition,deletion的首字母
< ab # 小于号意思是文件1中删去本行
  --- # 分隔符号,分开文件1,2
  > ac # 大于号意思是文件2中增加本行

# 上下文格式

在正常格式的基础上加入了上下文的显示
使用方法如下:

1
2
$ diff -c <文件1> <文件2>
# context

输出结果为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
*** <文件1> 2023-03-01 13:40:20.000000000 +0800
--- <文件2> 2023-03-01 13:40:20.000000000 +0800
# 显示基本信息
  ***************
# 15个星号构成分隔
  *** 1,7 ****
   a
   a
   a
  !a
   a
   a
   a
  --- 1,7 ----
   a
   a
   a
  !b
   a
   a
   a
# 由于在第四行发生了变化,又加入上下文,显示第4行前面和后面的3行,即1-7行。用1,7表示

# !指的变动,-指删除,+指增加

# 合并格式

上下文格式中有大量重复的内容,合并格式将这些重复的内容合并到一起。
使用方法:

1
2
$ diff -u f1 f2
#unified

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- <文件1> 2023-03-01 13:40:20.000000000 +0800
+++ <文件2> 2023-03-01 13:40:20.000000000 +0800
# 显示基本信息.
  @@ -1,7 +1,7 @@
# -和+与上文对应。1,7的意思与上下文格式相同
   a
   a
   a
  -a
+b
   a
   a
   a
# -表示第一个文件删除的,+表示第二个文件增加的
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

小春日和 微信支付

微信支付

小春日和 支付宝

支付宝

小春日和 wechat

wechat