文章目录
- diff
- 补充说明
- 语法
- 选项
- 参数
- 实例
- 以正常模式比较差异
- 从零学 `python`
diff
比较给定的两个文件的不同
补充说明
diff
命令在最简单的情况下,用于比较给定的两个文件的不同。如果使用 “-” 代替 “文件” 参数,则要比较的内容将来自标准输入。diff
命令以逐行的方式比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
语法
diff
(选项) (参数)
选项
-<行数>
:指定要显示多少行的文本。此参数必须与 -c
或 -u
参数一并使用。
--a
或 --text
:diff
预设只会逐行比较文本文件。
--b
或 --ignore-space-change
:不检查空格字符的不同。
--B
或 --ignore-blank-lines
:不检查空白行。
--c
:显示全部内容,并标出不同之处。
--C<行数>
或 --context<行数>
:与执行 -c -<行数>
指令相同。
--d
或 --minimal
:使用不同的算法,以小的单位来做比较。
--D<宏名称>
或 ifdef<宏名称>
:此参数的输出格式可用于前置处理器宏。
--e
或 --ed
:此参数的输出格式可用于 ed
的 script 文件。
--f
或 --forward-ed
:输出的格式类似 ed
的 script 文件,但按照原来文件的顺序来显示不同处。
--H
或 --speed-large-files
:比较大文件时,可加快速度。
--l<字符或字符串>
或 --ignore-matching-lines<字符或字符串>
:若两个文件在某几行有所不同,并且同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
--i
或 --ignore-case
:不检查大小写的不同。
--l
或 --paginate
:将结果交由 pr
程序来分页。
--n
或 --rcs
:将比较结果以 RCS 的格式来显示。
--N
或 --new-file
:在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:“Only in 目录,文件 A”。若使用 -N
参数,则 diff
会将文件 A 与一个空白的文件比较。
--p
:若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称。
--P
或 --unidirectional-new-file
:与 -N
类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
--q
或 --brief
:仅显示有无差异,不显示详细的信息。
--r
或 --recursive
:比较子目录中的文件。
--s
或 --report-identical-files
:若没有发现任何差异,仍然显示信息。
--S<文件>
或 --starting-file<文件>
:在比较目录时,从指定的文件开始比较。
--t
或 --expand-tabs
:在输出时,将 tab 字符展开。
--T
或 --initial-tab
:在每行前面加上 tab 字符以便对齐。
--u
,-U<列数>
或 --unified=<列数>
:以合并的方式来显示文件内容的不同。
--v
或 --version
:显示版本信息。
--w
或 --ignore-all-space
:忽略全部的空格字符。
--W<宽度>
或 --width<宽度>
:在使用 -y
参数时,指定栏宽。
--x<文件名或目录>
或 --exclude<文件名或目录>
:不比较选项中所指定的文件或目录。
--X<文件>
或 --exclude-from<文件>
:您可以将文件或目录类型存成文本文件,然后在 =<文件>
中指定此文本文件。
--y
或 --side-by-side
:以并列的方式显示文件的异同之处。
---help
:显示帮助。
---left-column
:在使用 -y
参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
---suppress-common-lines
:在使用 -y
参数时,仅显示不同之处。
参数
文件1:指定要比较的第一个文件。
文件2:指定要比较的第二个文件。
实例
以正常模式比较差异
diff a.txt b.txt
以上下文 (context) 模式比较差异
diff -c a.txt b.txt
*** a1.txt 2012-08-29 16:45:41.000000000 +0800
--- a2.txt 2012-08-29 16:45:51.000000000 +0800
***************
*** 1,7 ****aaa
! aaaa
--- 1,7 ----aaa
! baaa
以联合 (unified) 模式比较差异
diff -u a.txt b.txt
--- a.txt 2012-08-29 16:45:41.000000000 +0800
+++ b.txt 2012-08-29 16:45:51.000000000 +0800
@@ -1,7 +1,7 @@aaa
- a
+ baaa
多文件比较差异
将目录 /usr/li
下的文件 “test.txt” 与当前目录下的文件 “test.txt” 进行比较,输入如下命令:
diff /usr/li test.txt #使用diff指令对文件进行比较
上面的命令执行后,会将比较后的不同之处以指定的形式列出,如下所示:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
其中,字母 “a”、“d”、“c” 分别表示添加、删除及修改操作。而 “n1”、“n2” 表示在文件1中的行号,“n3”、“n4” 表示在文件2中的行号。
注意:以上说明指定了两个文件中不同处的行号及其相应的操作。在输出形式中,每一行后面将跟随受到影响的若干行。其中,以 <
开始的行属于文件1,以 >
开始的行属于文件2。
从零学 python
【从零学习python 】92.使用Python的requests库发送HTTP请求和处理响应
【从零学习python 】91. 使用装饰器和字典管理请求路径的简洁Web应用
【从零学习python 】93.使用字典管理请求路径
【从零学习python 】89. 使用WSGI搭建简单高效的Web服务器
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
【从零学习python 】87. 手动搭建HTTP服务器的Python实现及多线程并发处理
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
【从零学习python 】85.Python进程池的并行计算技术应用
【从零学习python 】84.深入理解线程和进程
【从零学习python 】83. Python多进程编程与进程池的使用
【从零学习python 】82. 基于多线程的聊天程序实现
【从零学习python 】81.Python多线程通信与队列的应用
【从零学习python 】80.线程访问全局变量与线程安全问题
【从零学习python 】79. 线程访问全局变量与线程安全问题
【从零学习python 】78. 文件下载案例
【从零学习python 】77. TCP服务端编程及注意事项
【从零学习python 】76.服务器与客户端:网络通信的关键组成部分
【从零学习python 】75. TCP协议:可靠的面向连接的传输层通信协议
【从零学习python 】74. UDP网络程序:端口问题与绑定信息详解
【从零学习python 】73. UDP网络程序-发送数据
【从零学习python 】72. 深入理解Socket通信及创建套接字的方法
【从零学习python 】71. 网络端口及其作用
【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络
【从零学习python 】69. 网络通信及IP地址分类解析
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
【从零学习python 】67.Python中的re模块:正则替换与高级匹配技术
【从零学习python 】66.深入了解正则表达式:模式匹配与文本处理的利器
【从零学习python 】65. Python正则表达式修饰符及其应用详解
【从零学习python 】64. Python正则表达式中re.compile方法的使用详解
【从零学习python 】63.正则表达式中的re.Match类及其属性和方法介绍
【从零学习python 】62. Python正则表达式:强大的字符串匹配工具
【从零学习python 】61.Python中的property属性详解和应用示例
【从零学习python 】60.探索生成器:迭代的灵活利器
【从零学习python 】59.迭代器:优化数据遍历的高效工具
【从零学习python 】58.Python中的自定义异常及引发异常的方法
【从零学习python 】57.Python中使用with关键字正确关闭资源
【从零学习python 】56. 异常处理在程序设计中的重要性与应用
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
【从零学习python 】54. 内存中写入数据
【从零学习python 】53. CSV文件和Python的CSV模块
【从零学习python 】52.文件的读写 - Python文件操作指南
【从零学习python 】51.文件的打开与关闭及其在Python中的应用
【从零学习python 】49. Python中对象相关的内置函数及其用法
【从零学习python 】48.Python中的继承与多继承详解
【从零学习python 】47. 面向对象编程中的继承概念及基本使用
【从零学习python 】46. Python中的__new__和__init__方法解析及单例设计模式
【从零学习python 】45.Python中的类方法和静态方法
【从零学习python 】44.面向对象编程中的私有属性和方法
【从零学习python 】43. Python面向对象编程中的实例属性和类属性
【从零学习python 】42.Python中的内置属性和方法
【从零学习python 】41.python魔法方法(二)
【从零学习python 】40.python魔法方法(一)
【从零学习python 】39.面向对象基本语法及应用示例
【从零学习python 】38.Python包的使用及导入方式
【从零学习python 】37.Python自定义模块的使用和注意事项
【从零学习python 】36.Python中使用pip进行第三方包管理的方法与技巧
【从零学习python 】35. Python常见系统模块及其用法
【从零学习python 】34.Python模块的导入和使用方法详解
【从零学习python 】33.装饰器的作用(二)
【从零学习python 】32.装饰器的作用(一)
【从零学习python 】31.深入理解Python中的高阶函数和闭包
【从零学习python 】30.深入理解递归函数和匿名函数
【从零学习python 】29. 「函数参数详解」——了解Python函数参数的不同用法
【从零学习python 】28. Python中的局部变量和全局变量
【从零学习python 】27. Python 函数的使用及嵌套调用
【从零学习python 】25.函数:提高代码编写效率的利器
【从零学习python 】24. Python中的字符串操作与遍历方法
【从零学习python 】23. Python中集合(set)的使用方法和常见操作
【从零学习python 】22. Python中的字典的增删改查及字典的变量
【从零学习python 】21.Python中的元组与字典
【从零学习python 】20. Python列表操作技巧及实例
【从零学习python 】19. 循环遍历列表和列表嵌套的应用
【从零学习python 】18. Python列表的基本操作详解(一)
【从零学习python 】17. Python字符串的format方法(二)
【从零学习python 】16. Python字符串的format方法(一)
【从零学习python 】15.深入了解字符串及字符集编码
【从零学习python 】14.Python字符串常见操作(二)
【从零学习python 】13.Python字符串常见操作(一)
【从零学习python 】12.Python字符串操作与应用
【从零学习python 】11.Python循环语句和控制流程
【从零学习python 】10.Python条件语句和if嵌套详解
【从零学习python 】09.Python 中的条件判断语句
【从零学习python 】08.Python了解位运算符, 运算符优先级
【从零学习python 】07.Python运算符详解:赋值、比较和逻辑运算符
【从零学习python 】06. Python中运用算数运算符进行计算和字符串拼接
【从零学习python 】05. Python中的输出和输入
【从零学习python 】04. Python编程基础:变量、数据类型与标识符
【从零学习python 】03. Python交互式编程及注释详解
【从零学习python 】02. 开发工具介绍
【从零学习python 】01. 安装配置python