濮阳杆衣贸易有限公司

主頁 > 知識庫 > 教你一招實現Linux中的文本比對

教你一招實現Linux中的文本比對

熱門標簽:哈爾濱400電話去哪辦理 廣東如何申請400電話 北京人工外呼系統(tǒng)廠家 400電話申請要什么條件 寧波400電話辦理對企業(yè)的意義 話術外呼系統(tǒng) i智能電話機器人yeta 西柏坡地圖標注 燃氣管線地圖標注顏色

前言

我們在寫代碼的過程中,免不了會對代碼進行一些修修改改。但經常會出現改著改著,就不知道改完后與源文件的差異是怎樣的。這里,我們就需要一個文本比對工具來進行文本比對。

有經驗的程序員都知道,Windows下有個很好用的文本比對工具——BeyondCompare。但它是收費軟件,很多正規(guī)的公司是不允許使用破解軟件的。而且,它也只能在Windows下使用,沒有Linux版本。

本文所介紹的文本比對方法,無需任何軟件,只需一個Linux命令。學會這個命令,媽媽就再也不怕你不會文本比對了。

這個Linux命令就是diff命令。

diff是Unix系統(tǒng)的一個很重要的工具程序。它用來比較兩個文本文件的差異,是代碼版本管理的基石之一。

首先我們來看它的基本命令格式。

diff [OPTION]... FILES

很簡單吧。不過它的選項相當多,多到你懷疑人生。我們暫且不管那么多,先學一些最常用的,畢竟時間要花在刀刃上。

-b ——  忽略一行中的空字符的區(qū)別(例如“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)正常格式

正常格式下我們無需加任何選項,直接如下比對就好:

執(zhí)行完的結果如下:

我們一行一行來解釋上圖的含義。

行一行: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)上下文格式

由于在正常格式下,提示信息比較少,我們無法快速定位所修改的地方,經常需要打開文件才知道修改細節(jié)。所以,為了給出更多的信息,引入了上下文格式。它的使用命令如下:

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里的內容。

除了以上三種格式外,還有另外一直更直觀的方式——并排格式。這種顯示格式的命令格式如下:

這種格式就是以并列的格式進行顯示,也很直觀明了。第3行里,有個“|”符號,表示這行有更改。另外,如果前面是“<”,表示后面文件比前面文件少了1行內容;如果是">",表示后面文件比前面文件多了1行內容。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

標簽:開封 珠海 張家口 湘潭 襄陽 西藏 巴中 阜陽

巨人網絡通訊聲明:本文標題《教你一招實現Linux中的文本比對》,本文關鍵詞  教你,一招,實現,Linux,中的,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《教你一招實現Linux中的文本比對》相關的同類信息!
  • 本頁收集關于教你一招實現Linux中的文本比對的相關信息資訊供網民參考!
  • 推薦文章
    达日县| 闸北区| 马鞍山市| 安西县| 鄂伦春自治旗| 大渡口区| 吴忠市| 马龙县| 都昌县| 兴安县| 太和县| 宁夏| 当阳市| 翁牛特旗| 浪卡子县| 祁阳县| 葫芦岛市| 中西区| 门头沟区| 三门县| 巩义市| 青海省| 思茅市| 古浪县| 手游| 嘉荫县| 上栗县| 金山区| 永修县| 闽侯县| 洪泽县| 乐亭县| 乌鲁木齐县| 玉龙| 仁怀市| 肥城市| 隆林| 姜堰市| 乐昌市| 万源市| 安塞县|