共计 1843 个字符,预计需要花费 5 分钟才能阅读完成。
咱们在写代码的过程中,免不了会对代码进行一些修修改改。但常常会呈现改着改着,就不晓得改完后与源文件的差别是怎么的。这里,咱们就须要一个文本比对工具来进行文本比对。
有教训的程序员都晓得,Windows 下有个很好用的文本比对工具——BeyondCompare。但它是免费软件,很多正规的公司是不容许应用破解软件的。而且,它也只能在 Windows 下应用,没有 Linux 版本。
本文所介绍的文本比对办法,无需任何软件,只需一个 Linux 命令。学会这个命令,妈妈就再也不怕你不会文本比对了。
这个 Linux 命令就是 diff 命令。
diff 是 Unix 零碎的一个很重要的工具程序。它用来比拟两个文本文件的差别,是代码版本治理的基石之一。
首先咱们来看它的根本命令格局。
diff [OPTION]... FILES
很简略吧。不过它的选项相当多,多到你狐疑人生。咱们暂且不论那么多,先学一些最罕用的,毕竟工夫要花在刀刃上。
-b —— 疏忽一行中的空字符的区别(例如“Hello World!”与“Hello World!!”认为是一样的)
-B —— 疏忽空白行
-i —— 疏忽大小写的不同
-r —— 如果 diff 前面接的目录时,会递归比拟子目录中的文件不同
咱们再来具体看看如何进行文本比拟。
diff 命令的输入格局有三种:
(1)失常格局(normal diff)
(2)上下文格局(context diff)
(3)合并格局(unified diff)
咱们通过实例具体介绍这三种输入格局。比方咱们当初有个文件 a.c,它的内容如下:
当初咱们复制一份,命名为 b.c,并将第 3 行小写的 ”hello” 改为大写“HELLO”,如下:
(1)失常格局
失常格局下咱们无需加任何选项,间接如下比对就好:
diff a.c b.c
执行完的后果如下:
咱们一行一行来解释上图的含意。
行一行:3c3
第一个 3 示意文件 a.c 中第 3 行有变动,前面的 3 示意 a.c 通过变动成为 b.c 中的第 3 行。两头的 c 就是具体的变动了。c 示意扭转(change),其它类型还有 d 删除(delete),a 减少(addition)。
第二行:< hello world!
示意 a.c 文件中去除第 3 行的内容,其中小于号示意去除。
第三行:——
分隔线
第四行:> HELLO world!
示意 b.c 文件中减少第 3 行的内容,其中大于号示意减少。
(2)上下文格局
因为在失常格局下,提示信息比拟少,咱们无奈疾速定位所批改的中央,常常须要关上文件才晓得批改细节。所以,为了给出更多的信息,引入了上下文格局。它的应用命令如下:
diff -c a.c b.c
其中,c 示意 context,即上下文的意思。
上图的输入后果的具体含意如下:
第 1 行和第 2 行示意批改前及批改后的文件及更新工夫。上面的 1,4 * 示意 a.c 文件显示的从第 1 行开始到第 4 行为止的内容。hello world 前的叹号(!)示意该行有改变,如果该行被删除,则为减号(-),如果该行被减少,则为加号(+)。前面几行的含意相似。
(3)合并格局
这种格局是失常格局与上下文格局的综合版,同时这种格局也是 git diff 所采纳的格局。应用这种格局的命令是:
diff -u a.c b.c
上图的输入后果具体含意如下:
第 1 行和第 2 行示意批改前及批改后的文件及更新工夫。前面的 -hello world! 示意原文件 a.c 里的内容,+HELLO world! 示意 b.c 里的内容。
除了以上三种格局外,还有另外始终更直观的形式——并排格局。这种显示格局的命令格局如下:
diff a.c b.c -y -W 50
这种格局就是以并列的格局进行显示,也很直观明了。第 3 行里,有个“|”符号,示意这行有更改。另外,如果后面是“<”,示意前面文件比后面文件少了 1 行内容;如果是 ”>”,示意前面文件比后面文件多了 1 行内容。
更多精彩内容,请关注公众号 良许 Linux,公众内回复 1024 可收费取得 5T 技术材料,包含:Linux,C/C++,Python,树莓派,嵌入式,Java,人工智能 ,等等。公众号内回复 进群,邀请您进高手如云技术交换群。
最初,最近很多小伙伴找我要Linux 学习路线图,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!
收费送给大家,只求大家金指给我点个赞!
电子书 | Linux 开发学习路线图
也心愿有小伙伴能退出我,把这份电子书做得更完满!
有播种?心愿老铁们来个三连击,给更多的人看到这篇文章
举荐浏览:
- 干货 | 程序员进阶架构师必备资源免费送
- 神器 | 反对搜寻的资源网站