Diff命令操作简介

作者: 天花板 | 来源:发表于2016-03-09 20:33 被阅读218次

我们通过下面这个例子来说明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

输出说明

  • 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

参数说明

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

输出说明

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

3. 上下文输出

$ diff old.txt new.txt -c

参数说明

  • -c NUM

Output NUM (default 3) lines of copied context.

输出说明

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

4. 统一格式输出

$ diff old.txt new.txt -u

输出说明

  • "---" 表示变动前的文件
  • "+++" 表示变动后的文件
  • @@ -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

7. 打补丁

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

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

8. 恢复

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

$ patch -RE -p0 < log.patch

相关文章

  • Diff命令操作简介

    我们通过下面这个例子来说明diff命令的简单用法。 文件准备 old.txt1112223334445556667...

  • Git起步--命令操作

    一、各个命令简介:1、git status:该命令可以让我们时刻掌握仓库当前的状态。2、git diff:该命令可...

  • diff命令和patch命令的使用

    diff命令和patch命令的使用 diff命令的使用方法 diff 命令是 linux上非常重要的工具,用于比较...

  • 读懂patch

    此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作。 基本命令语法: patch [-R] {-p(...

  • 3. git diff

    一. 先介绍系统的diff命令 假如有a,b两个命令,则用系统自带的diff命令差异如下diff a b 如果想看...

  • git diff

    diff 命令

  • Linux命令之文件管理 (八)

    Linux diff命令 Linux diff命令用于比较文件的差异。 diff以逐行的方式,比较文本文件的异同处...

  • diff 和 patch 命令简明教程

    diff 命令格式: diff [option] file1 file2 或 diff [option] dir...

  • Linux命令之文件管理 (九)

    Linux diffstat命令 Linux diffstat命令根据diff的比较结果,显示统计数字。 diff...

  • 常用的git命令和git分支策略

    git diff 命令 git diff 文件:查看尚未缓存的改动 git diff --cached:查看已缓存...

网友评论

  • 阿群1986:自己用过diff -Np0命令制作补丁文件,好像是对比整个源码文件夹的改动
    patch命令的选项我记不住了(需要手动加载特定补丁的场合很难遇到吧)
    阿群1986:怕麻烦可以用源代码比较工具,比如WinMerge
  • 38b0cc97245a:可以的

本文标题:Diff命令操作简介

本文链接:https://www.haomeiwen.com/subject/vyctlttx.html