ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux基础命令---diff

Linux基础命令---diff

原创 Linux操作系统 作者:一生有你llx 时间:2018-11-19 07:22:26 0 删除 编辑

diff

逐行比较两个文本文件,把文件的差异显示到标准输出。如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文件,不会比较子目录。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1 、语法

diff [ 选项]  files

 

2 、选项列表

选项

说明

-v | --version

显示命令版本信息

--help

显示帮助文档

-m | --mode=MODE

设置目录的权限

-i | --ignore-case

比较的时候,忽略大小写

--ignore-file-name-case

在比较文件名的时候,忽略大小写

--no-ignore-file-name-case

比较文件名的时候,不能忽略大小写

-E | --ignore-tab-expansion

不比较tab

-b | --ingore-space-change

不比较空格数

-w | --ignore-all-space

忽略所有的空格

-B | --ignore-blank-lines

不比较空白行

-I res | --ignore-mathcing-lines=res

不比较含有指定字符串res的行

--strip-trailing-cr

出去输入行尾随的东西

-a | --text

将所有的文件都当做文本文件

-c  -C NUM  --context[=NUM]

显示不同之处的前后部分内容,默认是3行

-u  -U NUM  --unified[=NUM]

显示相同之处的前后部分内容,默认是3行

--label LABEL

使用文件的标签,而不是名字

-p | --show-c-function

比较c语言文件的时候,显示不同之处所在的函数

-F RE  |  --show-function-line=RE

显示匹配RE的最近的行

-q | --brief

只显示是否有差异,不显示详细内容

-e | --ed

输出一个ed脚本

--normal

输出一个正常的diff

-n | --rcs

结果以rcs的方式显示

-y | --side-by-side

将两个文件已并列方式显示比较结果

-W num | --width=NUM

使用“-y”选项的时候,指定列宽

--left-column

只输出公共行的左列

--suppress-common-lines

不要输出公共行

-D NAME | --ifdef=NAME

输出合并文件以显示‘#ifdef NAME’的差异

--GTYPE-group-format=GFMT

同上,但用GFMT格式化GTYPE输入组

--line-format=LFMT

同上,但用LFMT格式化GTYPE输入组

--LTYPE-line-format=LFMT

同上,但用LFMT格式化LTYPE输入行

-l | --paginate

将输出传递给pr”以分页

-t | --expand-tabs

将制表符展开为输出中的空格

-T | --initial-tab

通过预置选项卡使制表符对齐

-N | --new-file

将缺席文件视为空文件

--unidirectional-new-file

将缺席的第一批文件视为空文件

-s | --report-identical-files

当两个文件相同时报告

-X FILE | --exclude-from=FILE

排除与文件中任何模式匹配的文件

-S FILE | --starting-file=FILE

从文件开始比较目录时

-r | --recursive

用递归的方式比较子目录下的所有文件

-x path

不比较指定的文件

--from-file=FILE1

将FILE 1与所有操作数进行比较。FILE 1可以是一个目录

--to-file=FILE2

将所有操作数与文件2进行比较。文件2可以是一个目录

--horizon-lines=NUM

保持通用前缀和后缀的NUM行

-d  --minimal

努力找出一组较小的变更

--speed-large-files

假设文件很大,并且有许多零散的小更改。

 

3 、实例

1 )比较两个文件,不使用参数 (两个文件只有第一行不同)

[root@localhost test02]#  diff 1.c 2.c             // 直接比较,这里只输出不同之处

1c1

逐行比较两个文本文件,把文件的差异显示到标准输出 ,adAD 文件。

---

逐行比较两个文本文件,把文件的差异显示到标准输出。

2 )使用选项-y,以分列的方式输出两个文件

[root@localhost test02]#  diff -y 1.c 2.c             // 使用选项 y ,这里以列的方式,显示文件全部内容

逐行比较两个文本文件,把文件的差异显示到标准输出 ,adAD 文件。               |     逐行比较两个文本文件,把文件的差异显示到标准输出。

如果要指定要比较目录,那么 diff 命令会比较目录中相同文件名的文                    如果要指定要比较目录,那么 diff 命令会比较目录中相同文件名的文

此命令的适用范围: RedHat RHEL Ubuntu CentOS SUSE openSUS             此命令的适用范围: RedHat RHEL Ubuntu CentOS SUSE openSUS

[root@localhost test02]# diff  1.c 2.c

3 )使用选项-W,指定列宽 

[root@localhost test02]#  diff -y -W 100 1.c 2.c     // 这里指定列宽 100 ,并不能完全显示,因此看不到差异之处

逐行比较两个文本文件,把文件的差异显示到标准       |    逐行比较两个文本文件,把文件的差异显示到标准

如果要指定要比较目录,那么 diff 命令会比较目录           如果要指定要比较目录,那么 diff 命令会比较目录

此命令的适用范围: RedHat RHEL Ubuntu CentO     此命令的适用范围: RedHat RHEL Ubuntu CentO

4 )比较目录 

[root@localhost weijie]#  diff test01 test02               // 这里只比较目录下相同名字的文件

diff test01/1.c test02/1.c

1c1

逐行比较两个文本文件,把文件的差异显示到标准输出。

---

逐行比较两个文本文件,把文件的差异显示到标准输出 ,adAD 文件。

5 )使用选项-q,查看是否不同

[root@localhost weijie]#  diff -q test01/1.c test02/1.c     // 比较是否不同

Files test01/1.c and test02/1.c differ                         // 只显示是否相同,不显示详细不同之处



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29270124/viewspace-2220511/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
多年物联网讲师经验,曾任职于达内、华清等公司。擅长Linux、c、java、Android、单片机、ZigBee、BLE等领域

注册时间:2018-10-21

  • 博文量
    256
  • 访问量
    258649