L24.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- diff和vimdiff命令

3.17 diff:比较两个文件的不同

3.17.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ diff命令可以逐行比较纯文本文件的内容,并输出文件的差异。

【语法格式】

diff [option] [file1] [file2]
diff [选项] [文件1] [文件2]

说明:

​ 1)在diff命令及后面的选项和文件里,每个元素直接都至少要有一个空格。

​ 2)只能同时比较2个文件。

【选项说明】

​ 表3-19针对该命令的参数选项进行了说明。

​ 表3-19 diff命令的参数选项及说明
在这里插入图片描述

3.17.2 使用范例

​ **范例3-58:**比较两个文本文件的例子。

[root@centos7 ~]# cat >test1<<EOF
> 1
> 2
> 3
> 4
> 5
> 6
> EOF
[root@centos7 ~]# cat >test2<<EOF
> 4
> 5
> 6
> 7
> 8
> EOF
[root@centos7 ~]# diff test1 test2
1,3d0	#删除文件1的第一行到第3行,删除文件2的第0行,即不删除。
< 1
< 2
< 3
6a4,5	#文件1的第1行增加下面2行文本,即文本2的第4行和第5行。
> 7
> 8

​ 以下是命令结果说明,diff默认的显示格式有如下三种提示。

  • a-add
  • c-change
  • d=delete

​ 例如:在1,3d0和6a4,5中,字母d/a前面的数字是文本1的行号,字母后面的是文本2的行号。其中以“<”打头的行属于文件1,以“>”打头的行属于文件2。

​ **范例3-59:**并排格式输出。

[root@centos7 ~]# diff -y test1 test2	#使用-y参数就可以并排输出。
1							      <
2							      <
3							      <
4								4
5								5
6								6
							      >	7
							      >	8
[root@centos7 ~]# diff -y -W 30 test1 test2	#如果觉得上面太宽,则可以使用-W参数指定宽度。
1	      <
2	      <
3	      <
4		4
5		5
6		6
	      >	7
	      >	8
	**范例3-60:**上下文输出格式。
[root@centos7 ~]# diff -c test1 test2	#参数-c可以上下文输出。
*** test1	2020-10-23 21:00:32.735019006 +0800
--- test2	2020-10-23 21:00:59.864019028 +0800
***************
*** 1,6 ****
- 1
- 2
- 3
  4
  5
  6
--- 1,5 ----
  4
  5
  6
+ 7
+ 8
	命令结果说明具体如下。
  • "-"表示test2比test1少的行数。

  • "+"表示test2比test1多的行数。

​ **范例3-61:**统一格式输出。

[root@centos7 ~]# diff -u test1 test2	#参数-u统一格式输出。
--- test1	2020-10-23 21:00:32.735019006 +0800
+++ test2	2020-10-23 21:00:59.864019028 +0800
@@ -1,6 +1,5 @@
-1
-2
-3
 4
 5
 6
+7
+8
	**范例3-62:**比较两个目录。
[root@centos7 ~]# diff /etc/rc3.d/ /etc/rc6.d	#diff不仅可以比较文件内容的区别,还能比较目录下文件的区别。
Only in /etc/rc6.d: K90network
Only in /etc/rc3.d/: S10network

3.18 vimdiff:可视化比较工具

3.18.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ vimdiff调用vim打开文件,可以同时打开2个、3个或4个文件,最多4个文件,并且会以不同的颜色来区分文件的差异。

【语法格式】

vimdiff [option] [file1] [file2]
vimdiff [选项] [文件1] [文件2]

说明:

​ 1)在vimdiff命令及后面的选项和文件里,每个元素直接都至少要有一个空格。

​ 2)最多对比4个文件。

3.18.2 使用范例

​ **范例3-63:**比较两个文本文件的例子。

[root@centos7 ~]# vimdiff test1 test2
#退出vimdiff界面需要连续执行2次退出vim的操作(:q),vim命令在后面将会有详细的讲解。因为vimdiff命令调用的是vim功能,所以退出操作和vim一致。

​ 图3-1为对比结果。

在这里插入图片描述
图3-1 vimdiff对比结果

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/125357003