乐趣区

关于linux:教你一招Linux下文本比对方法

咱们在写代码的过程中,免不了会对代码进行一些修修改改。但常常会呈现改着改着,就不晓得改完后与源文件的差别是怎么的。这里,咱们就须要一个文本比对工具来进行文本比对。

有教训的程序员都晓得,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 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版