Linux中分析diff命令比较文件或目录的用法

diff命令

描述

用来比较两个文件或目录的不同。diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

语法格式

diff [options] target1 target2
diff file1 file2

diff  direcory1   directory2

  • 常用参数
参数用法
-b或–ignore-space-change不检查空格字符的不同
-B或–ignore-blank-lines不检查空白行
-c显示全部内文,并标出不同之处
-i或–ignore-case不检查大小写的不同
-p若比较的文件为C语言的程序码文件时,显示差异所在的函数名称
-q或–brief仅显示有无差异,不显示详细的信息
-r或–recursive比较子目录中的文件
-u以合并的方式来显示文件内容的不同

显示结果解析

  • 编辑两个文件如下
[root@test shell]# cat file1
server1
hello
xixi
redhat
[root@test shell]# cat file2
server2
world
xixi
centos
  • diff 比较
[root@test shell]# diff file1 file2
1,2c1,2
< server1
< hello
---
> server2
> world
4c4
< redhat
---
> centos
  • 结果分析
1,2c1,2:表示改变第一个文件(file1)中的第一行和第二行才能匹配第二个文件(file2)中的第一行和第二行
4c4    :表示改变第一个文件(file1)中的第四行才能匹配第二个文件(file2)中的第四行
<      :表示第一个文件(file1)中的内容
>      :表示第二个文件(file2)中的内容
---    : 表示分割线
  • 扩充分析
##形如此式
num1,num2   [a|c|d]   num3,num4           

##含义如下
num1,num2       表示在第一个文件中的行数
num3,num4       表示在第二个文件中的行数
a               表示添加(add)
c               表示更改(change)
d               表示删除(delete)
<               表示第一个文件中的内容
>               表示第二个文件中的内容
---             分割线

留下评论