前言
十載的雙城網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整雙城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“雙城網(wǎng)站設(shè)計”,“雙城網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
我們在寫代碼的過程中,免不了會對代碼進(jìn)行一些修修改改。但經(jīng)常會出現(xiàn)改著改著,就不知道改完后與源文件的差異是怎樣的。這里,我們就需要一個文本比對工具來進(jìn)行文本比對。
有經(jīng)驗的程序員都知道,Windows下有個很好用的文本比對工具——BeyondCompare。但它是收費軟件,很多正規(guī)的公司是不允許使用破解軟件的。而且,它也只能在Windows下使用,沒有Linux版本。
本文所介紹的文本比對方法,無需任何軟件,只需一個Linux命令。學(xué)會這個命令,媽媽就再也不怕你不會文本比對了。
這個Linux命令就是diff命令。
diff是Unix系統(tǒng)的一個很重要的工具程序。它用來比較兩個文本文件的差異,是代碼版本管理的基石之一。
首先我們來看它的基本命令格式。
diff [OPTION]... FILES
很簡單吧。不過它的選項相當(dāng)多,多到你懷疑人生。我們暫且不管那么多,先學(xué)一些最常用的,畢竟時間要花在刀刃上。
-b —— 忽略一行中的空字符的區(qū)別(例如“Hello World!” 與 “Hello World!!”認(rèn)為是一樣的)
-B —— 忽略空白行
-i —— 忽略大小寫的不同
-r —— 如果diff后面接的目錄時,會遞歸比較子目錄中的文件不同
我們再來具體看看如何進(jìn)行文本比較。
diff命令的輸出格式有三種:
(1)正常格式(normal diff)
(2)上下文格式(context diff)
(3)合并格式(unified diff)
我們通過實例詳細(xì)介紹這三種輸出格式。比如我們現(xiàn)在有個文件a.c,它的內(nèi)容如下:
現(xiàn)在我們復(fù)制一份,命名為b.c,并將第3行小寫的"hello"改為大寫“HELLO",如下:
(1)正常格式
正常格式下我們無需加任何選項,直接如下比對就好:
執(zhí)行完的結(jié)果如下:
我們一行一行來解釋上圖的含義。
行一行:3c3
第一個3表示文件a.c中第3行有變化,后面的3表示a.c通過變化成為b.c中的第3行。中間的c就是具體的變化了。c表示改變(change),其它類型還有d刪除(delete),a增加(addition)。
第二行:< hello world!
表示a.c文件中去除第3行的內(nèi)容,其中小于號表示去除。
第三行:------
分隔線
第四行:> HELLO world!
表示b.c文件中增加第3行的內(nèi)容,其中大于號表示增加。
(2)上下文格式
由于在正常格式下,提示信息比較少,我們無法快速定位所修改的地方,經(jīng)常需要打開文件才知道修改細(xì)節(jié)。所以,為了給出更多的信息,引入了上下文格式。它的使用命令如下:
diff -c a.c b.c
其中,c表示context,即上下文的意思。
上圖的輸出結(jié)果的具體含義如下:
第1行和第2行表示修改前及修改后的文件及更新時間。下面的*** 1,4 ****表示a.c文件顯示的從第1行開始到第4行為止的內(nèi)容。hello world前的嘆號(!)表示該行有改動,如果該行被刪除,則為減號(-),如果該行被增加,則為加號(+)。后面幾行的含義類似。
(3)合并格式
這種格式是正常格式與上下文格式的綜合版,同時這種格式也是git diff所采用的格式。使用這種格式的命令是:
diff -u a.c b.c
上圖的輸出結(jié)果詳細(xì)含義如下:
第1行和第2行表示修改前及修改后的文件及更新時間。后面的-hello world!表示原文件a.c里的內(nèi)容,+HELLO world!表示b.c里的內(nèi)容。
除了以上三種格式外,還有另外一直更直觀的方式——并排格式。這種顯示格式的命令格式如下:
這種格式就是以并列的格式進(jìn)行顯示,也很直觀明了。第3行里,有個“|”符號,表示這行有更改。另外,如果前面是“<”,表示后面文件比前面文件少了1行內(nèi)容;如果是">",表示后面文件比前面文件多了1行內(nèi)容。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。