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",每次退出一个文件。