一点关于 diff 的总结

# diff 的使用

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

# diff 的输出

# diff 的三种格式

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

# 正常格式

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

比较两个文件:

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

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

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

# 上下文格式

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

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

输出结果为:

*** <文件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 表示
    # ! 指的变动,- 指删除,+ 指增加

# 合并格式

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

$ diff -u f1 f2
#unified

输出结果:

--- <文件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