每天一点Linux命令:文本比较--diff与vimdiff

diff命令

diff命令可以逐行比较文本文件的内容,并输出其中的不同。

diff命令的使用方法:

diff [option] [file1] [file2]

使用参数:

diff命令的使用参数还是挺多的,这里只列出个人认为比较常用的一些参数,如想查看更多,可以使用diff --help命令查看帮助。

参数
-y 以并列的方式比较两个文件
-W 使用-y参数后,可以用-W调整显示宽度
-c 以上下文的方式来比较两个文件
-u 将两个文本整合到一起,并用"-" "+"来显示文件的差异

这里有两个文件,列出如下:
test1
在这里插入图片描述
test2
在这里插入图片描述

比较示范

不加参数

diff test1 test2
在这里插入图片描述
在输出的结果里,需要先说明一下:
a表示增加(add)
d表示删除(delete)
c表示改变,也就是文本不同的意思(change)

我们在看一下比较结果:
其中1,3d0表示第一个文件相比于第二个文件,第一行至第三行应该删掉。第二个文件删掉第0行,就是不删的意思。
字母前表示第一个文件,字母后的表示第二个文件,数字表示的是行号。
"<“表示的内容是第一个文件的内容,”>"表示的是第二个文件的内容。
类似的,我们也就好容易理解6a4,5的意思了,就是第一个文件的第6行后面应该增加"> g" "> h"这两行内容,也就是第二行文件的第4-5行。

并排格式(-y)

使用-y参数可以是两个文本并列的显示出来,如下:
在这里插入图片描述
可以看到这里会将文件内容并排显示出来。
这里也可以使用"-W"参数来指定,两个文件间的排列宽度,如下:
在这里插入图片描述

以上下文的方式比较文件(-c)

"-c"参数会使文件以上下文的方式展示:
在这里插入图片描述
可以看到以***表示test1文件的内容,—表示test2文件的内容,这里会显示创建这两个文件的具体时间。
-表示test1文件相比于test2应该去掉的内容,+表示相比于test2文件应该增加的内容。

统一文本格式(-u)

使用-u参数会使两个文本合并到一个文本,统一成一个格式。
在这里插入图片描述

diff比较目录

diff命令也可以比较目录,显示目录下文件的区别。
在这里插入图片描述

vimdiff

vimdiff是一种可视化的文本比较工具,是调用vim来进行文本比较的,也因为如此,可以以颜色来区分文件之间的差异。
,最多可以同时打开4个文件。
比如我再新加两个文件test3和test4。直接进行比较,查看结果:
vimdiff test1 test2 test3 test4
在这里插入图片描述因为用vim相当于同时打开4个文件,所以,需要退出4次vim才能退出来,即输入4次":q",每次退出一个文件。

猜你喜欢

转载自blog.csdn.net/laugh_man/article/details/84027051