Linux-diff和diff3命令

简介: Linux-diff和diff3命令

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:指定要比较的第二个文件。

实例

将目录/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。


diff3

概述

diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出。

语法

diff3(选项)(参数)

选项

-a:把所有的文件都当做文本文件按照行为单位进行比较,即给定的文件不是文本文件;

-A:合并第2个文件和第3个文件之间的不同到第1个文件中,有冲突内容用括号括起来;

-B:与选项“-A”功能相同,但是不显示冲突的内容;

-e/–ed:生成一个“-ed”脚本,用于将第2个文件和第3个文件之间的不同合并到第1个文件中;

–easy-only:除了不显示互相重叠的变化,与选项“-e”的功能相同;

-i:为了和system V系统兼容,在“ed”脚本的最后生成“w”和“q”命令。此选项必须和选项“-AeExX3”连用,但是不能和“-m”连用;

–initial-tab:在正常格式的行的文本前,输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范。

参数

文件1:指定要比较的第1个文件;

文件2:指定要比较的第2个文件;

文件3:指定要比较的第3个文件。

实例

[root@entel1 Videos]# diff3 1.txt  2.txt 3.txt 
====
1:1c
  aac
2:1c
  aab
3:1c
  aad


相关文章
|
18天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
18天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
15天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
36 9
|
2天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
3天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
3天前
|
Linux
【Linux】常用命令
【Linux】常用命令
24 0
|
3天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
4天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0