Diff命令操作简介

我们通过下面这个例子来说明diff命令的简单用法。

文件准备

  • old.txt

    111
    222
    333
    444
    555
    666
    777
    888
    999
    000

  • new.txt

    111
    1.5
    222
    2.5
    2.6
    333
    444
    555
    888
    909
    000

1. Normal

$ diff old.txt new.txt

《Diff命令操作简介》

输出说明

  • a (add)

1a2 在old第1行之后加入了new的第2行
2a4,5在old第2行之后加入了new的第4,5行

  • c (change)

9c10old中第9行修改为new第10行
<表示old文件中的内容
>表示new文件中的内容

  • d (delete)

6,7d8old第6、第7行原本在new第8行之后

2. 并排输出

$ diff old.txt new.txt -y -W 50

《Diff命令操作简介》

参数说明

  • -y 并排输出
  • -W NUM 输出列数

输出说明

  • “|” 表示前后2个文件内容有不同
  • “<”表示后面文件比前面文件少了1行内容
  • “>”表示后面文件比前面文件多了1行内容

3. 上下文输出

$ diff old.txt new.txt -c

《Diff命令操作简介》

参数说明

  • -c NUM

Output NUM (default 3) lines of copied context.

输出说明

  • “+” 比较的文件的后者比前着多一行
  • “-” 比较的文件的后者比前着少一行
  • “!” 比较的文件两者有差别的行

4. 统一格式输出

$ diff old.txt new.txt -u

《Diff命令操作简介》

输出说明

  • “—” 表示变动前的文件
  • “+++” 表示变动后的文件
  • @@ -1,10 +1,11 @@ 变动位置

‘-‘表示old.txt
‘+’表示new.txt
‘-1,10’ old.txt的前10行
‘+1,10’ new.txt的前11行

5. 比较文件夹不同

$ diff path1 path2

PS : 给目录打补丁会发生覆盖

6. 比较文件不同,产生补丁

$ diff -ruN old.txt new.txt > log.patch
$ cat log.patch

《Diff命令操作简介》

7. 打补丁

$ patch -p0 < log.patch
patching file old.txt
  • -pNUM

去掉默认路径中的NUM个‘/

8. 恢复

如果恢复打补丁之前的文件

$ patch -RE -p0 < log.patch
    原文作者:天花板
    原文地址: https://www.jianshu.com/p/e384cac71be4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞