diff(difference)命令常用来比较两个文件中的内容。diff 命令在最简单的情况下,比较两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。下面良许小编就将Linux diff命令进行详述,希望对大家有所帮助。

diff 命令是以逐行的方式比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。

diff 命令的基本格式有两种,分别如下:

  1. 比较文件

[root@liangxu ~]# diff [选项] 文件名1 文件名2

  1. 比较目录。

[root@liangxu ~]# diff [选项] 目录1 目录2

diff 命令常用的选项及功能如表 1 所示。

选 项 功 能
-行数 指定要显示多少行的文本。此参数必须与 -c 或 -u 参数一并使用
-a diff 只会逐行比较文本文件
-b 不检查空格字符的不同
-B 不检查空白行
-c 显示全部内文,并标出不同之处
-c 行数 与执行“-c-行数”指令相同
-d 使用不同的演算法,以较小的单位来做比较
-D 此参数的输出格式可用于前置处理器巨集
-e 此参数的输出格式可用于 ed 的 script 文件
-f 输出的格式类似 ed 的 script 文件,但按照原来文件的顺序来显示不同处
-H 比较大文件时,可加快速度
-I 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异
-i 不检查大小写的不同
-l 将结果交由 pr 程序来分页
-n 将比较结果以 RCS 的格式来显示
-N 在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:Only in目录:文件 A 若使用 -N 参 数,则 diff 会将文件 A 与一个空白的文件比较
-p 若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称
-P 与 -N 类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空 白的文件做比较
-q 仅显示有无差异,不显示详细的信息
-r 比较子目录中的文件
-s 若没有发现任何差异,仍然显示信息
-S 从指定的文件开始比较目录
-t 在输出时,将 tab 字符展开
-T 在每行前面加上 tab 字符以便对齐
-u 以合并的方式来显示文件内容的不同
-v 显示版本信息
-w 忽略全部的空格字符
-W 在使用 -y 参数时,指定栏宽
-x 不比较选项中所指定的文件或目录
-X 可以将文件或目录类型存成文本文件,然后在?中指定此文本文件
-y 以并列的方式显示文件的异同之处
--help 显示帮助
--left-column 在使用 -y 参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容

diff 命令的显示结果有以下两种方式:

  • < 表示第一个文件中的数据行。
  • > 表示第二个文件中的数据行。

注意,diff 命令能够分析并输出两个文件的不同的行。diff 的输出结果表明需要对一个文件做怎样的操作之后才能与第二个文件相匹配(与第一个文件相比,第二个文件发生了哪些变化),其中包含三种操作分别为:a=add,c=change,d=delete。diff 命令并不会改变文件的内容,但是 diff 可以输出一个 ed 脚本来应用这些改变。

【例 1】比较两个文件的不同。 创建两个样本文件,分别命名为 text 和 text1,并分别输入以下内容:

//test 11 22

33 44 55

66 77 //test1 11 22 aa 33 44 55 bb 66

在终端页面中输入命令如下:

[root@liangxu ~]# diff test test1 3c3 < --- > aa 7c7 < --- > bb 9,10d8 < 77 <

输出信息的含义分别为:

  • “3c3”:表示第一个文件的第 3 行需要修改才能和第二个文件的第3行相匹配;
  • “---”:表示分隔线;
  • “>aa”:> 表示第二个文件,第一个文件中需要添加的内容为 aa,该内容存放在第二个文件中;
  • “>bb”:> 表示第二个文件,第一个文件中需要添加的内容为 bb,该内容存放在第二个文件中;
  • “9,10d8”:表示删除第一个文件中的第 9 和第 10 行才能和第二个文件中的第 8 行相匹配;
  • “<77”:表示第一个文件中待删除的内容为 77。

Linux diff命令详解相关推荐

  1. 【转】Linux diff 命令详解

    diff 命令详解 1.概述 2.diff如何工作,如何理解diff的执行结果 3.Normal模式 4.Context模式 5.Unified模式 6.比较目录 7.参数 -e 将比较的结果保存成一 ...

  2. deepdiff函数返回_Linux diff命令详解

    diff(difference)命令常用来比较两个文件中的内容.diff 命令在最简单的情况下,比较两个文件的不同.如果使用"-"代替"文件"参数,则要比较的内 ...

  3. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  4. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  5. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  6. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  7. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

  8. linux mread 命令详解

    linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...

  9. linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...

最新文章

  1. 最新的SCI-HUB访问地址
  2. 第十六届智能车竞赛开源云台设计
  3. request对象方法详解
  4. Flask的Context(上下文)
  5. python中对字典进行排序_python如何给字典排序
  6. 2.5.jieba分词工具、Jieba安装、全模式/精确模式、添加自定义词典、关键词抽取、词性标注、词云展示
  7. vue+Element-ui实现分页效果
  8. memcache_engine + memcachedb = 高性能分布式内存数据库
  9. nodejs总结之redis模块
  10. 压缩感知重构算法——SP算法
  11. win10系统键盘失灵怎么解决
  12. 数字电路加法器 基本原理(一)
  13. FPGA--ZCU106通过SFP+/SGMII模块传输数据-第一讲(全网唯一)
  14. 三门问题的扩展用c++模拟
  15. Hadoop生态系统——HiveQL操作实战
  16. ZZULIOJ 1197: 考试排名(一)(结构体专题)
  17. 硬件学习-电子元器件相关资料汇总
  18. 计算机科学与技术的职业需求,计算机科学与技术专业人才需求状况
  19. 完成HTML网页制作之后的成果,index.html
  20. stm32+drv8825驱动42步进电机

热门文章

  1. 实现Python爬虫的思路、原理
  2. caused by java.io.io_疑难杂症之 Error:java.io.InvalidClassException
  3. linux双屏原理,Linux下双屏显示设置
  4. 从概念到现状,一文读懂边缘计算
  5. VirtualBox 不能为虚拟电脑 打开一个新任务 VERR_NEM_VM_CREATE_FAILED
  6. Atlas的使用案例
  7. org.quartz
  8. BlogBus发难:博客为什么不能随便搬家?
  9. HZNUOJ 1157 有假币
  10. 边际效应以及边际效应的递减规律