9款Linux文件比較工具
程序員和撰稿人在編寫程序文件或平常的文本文件時(shí),有時(shí)想知道兩個(gè)文件或同一文件的兩個(gè)版本之間的差異。你在Linux上比較兩個(gè)計(jì)算機(jī)文件時(shí),文件內(nèi)容之間的差異就叫diff。這一描述來(lái)源于提到diff的輸出,而diff是大名鼎鼎的Unix命令行文件的實(shí)用工具。
你可以在Linux上使用幾款文件比較工具,我們?cè)诒疚闹薪榻B了一些最優(yōu)秀的基于終端和基于GUI的比較工具,你在編寫代碼或其他文本文件時(shí)可以充分利用它們。
1.diff命令
我喜歡先介紹這款最初的Unix命令行工具,它為你顯示了兩個(gè)計(jì)算機(jī)文件之間的差異。diff很簡(jiǎn)單,易于使用,它預(yù)先安裝在大多數(shù)Linux發(fā)行版上。它逐行比較文件,并輸出文件之間的差異。
你可以檢查一下diff的參考手冊(cè)項(xiàng),以便易于使用。
- # man diff
有一些面向diff工具的包裝器,它們改善了其功能,這些包括:
colordiff命令
colordiff是一個(gè)Perl腳本,生成與diff一樣的輸出,不過(guò)標(biāo)以顏色和語(yǔ)法高亮顯示。它有可定制的配色方案。
你可以使用名為yum、dnf或apt-get的默認(rèn)程序包管理器,將Colordiff安裝到Linux系統(tǒng)上,如圖所示。
- # yum install colordiff [On CentOS/RHEL/Fedora]
- # dnf install colordiff [On Fedora 23+ version]
- $ sudo apt-get install colordiff [On Debian/Ubuntu/Mint]
你可以檢查一下Colordiff的手動(dòng)輸入,如圖所示。
- # man colordiff
Linux Colordiff命令-顏色比較輸出
wdiff命令
wdiff實(shí)用工具是diff命令的一個(gè)前端,用來(lái)逐個(gè)單詞地比較文件。比較兩個(gè)文本,查找變化的單詞、查找哪些段落已重填時(shí),該程序很有用。
想把wdiff安裝到Linux系統(tǒng)上,運(yùn)行:
- # yum install wdiff [On CentOS/RHEL/Fedora]
- # dnf install wdiff [On Fedora 23+ version]
- $ sudo apt-get install wdiff [On Debian/Ubuntu/Mint]
使用wdiff參考手冊(cè),了解如何在Linux上使用。
- # man wdiff
wdiff比較Linux中的兩個(gè)文件。
2.Vimdiff命令
相比diff實(shí)用工具,Vimdiff采用了一種高級(jí)的工作方式。它讓用戶在顯示文件差異時(shí),最多可以編輯一個(gè)文件的四個(gè)版本。你在運(yùn)行Vimdiff時(shí),它會(huì)使用vim文件編輯器,打開(kāi)兩到四個(gè)文件。
Vimdiff編輯多個(gè)文件,查找差異。
訪問(wèn)主頁(yè):http://vimdoc.sourceforge.net/htmldoc/diff.html
了解了老式的比較工具后,不妨看一下Linux上的一些GUI比較工具。
3.Kompare
Kompare是一種比較GUI包裝器,讓用戶可以查看文件之間的差異,并且合并文件。
它的一些功能包括如下:
- 支持多種diff格式
- 支持目錄比較
- 支持讀取diff文件
- 可定制界面
- 創(chuàng)建補(bǔ)丁,并將補(bǔ)丁打到源文件上
訪問(wèn)主頁(yè):https://www.kde.org/applications/development/kompare/
4.DiffMerge
DiffMerge是一種跨平臺(tái)的GUI應(yīng)用程序,可用于比較和合并文件。它有兩個(gè)功能引擎:Diff引擎顯示了兩個(gè)文件之間的差異,支持行內(nèi)高亮顯示和編輯,Merge引擎則輸出三個(gè)文件之間已變化的行。
它有下列功能:
- 支持目錄比較
- 集成了文件瀏覽器
- 可高度配置
訪問(wèn)主頁(yè):https://sourcegear.com/diffmerge/
5.Meld——比較工具
Meld是一款輕量級(jí)GUI比較和合并工具。它讓用戶能夠比較文件、目錄以及實(shí)行版本控制的程序。它是專門為開(kāi)發(fā)人員構(gòu)建的,具有下列功能:
- 兩路、三路比較文件和目錄
- 用戶輸入更多的單詞時(shí),更新文件比較
- 使用自動(dòng)合并模式和對(duì)已變化的塊執(zhí)行操作,讓合并更容易
- 使用可視化,易于比較
- 支持Git、Mercurial、Subversion、Bazaar以及更多
訪問(wèn)主頁(yè):http://meldmerge.org/
6.Diffuse——GUI比較工具
Diffuse是另一款流行、免費(fèi)、小巧而簡(jiǎn)單的GUI比較和合并工具,你可以在Linux上使用。它用Python編寫,提供了兩大功能:文件壓縮和版本控制,以便編輯文件、合并文件以及輸出文件之間的差異。
你可以查看比較摘要、使用鼠標(biāo)指針選擇文件中的幾行文本,匹配鄰近文件中的行,以及編輯不同文件。其他功能包括如下:
- 語(yǔ)法高亮顯示
- 鍵盤快捷鍵,便于導(dǎo)航
- 支持無(wú)限制的撤銷
- 支持統(tǒng)一碼
- 支持Git、CVS、Darcs、Mercurial、RCS、Subversion、SVK和Monotone
訪問(wèn)主頁(yè):http://diffuse.sourceforge.net/
7.XXdiff——比較和合并工具
XXdiff是一款免費(fèi)、強(qiáng)大的文件和目錄比較及合并工具,可以在類似Unix的操作系統(tǒng)上運(yùn)行,比如Linux、Solaris、HP/UX、IRIX和DEC Tru64。XXdiff的一大局限就是不支持統(tǒng)一碼文件,也不支持行內(nèi)編輯diff文件。
它有下列功能:
- 淺層和遞歸比較兩三個(gè)文件或兩個(gè)目錄
- 橫向差異高亮顯示
- 交互式合并文件,并保存因而得到的輸出
- 支持合并審查/巡視
- 支持外部的比較工具,比如GNU diff、SIG diff、Cleareddiff及更多
- 可使用腳本來(lái)進(jìn)行擴(kuò)展
- 可使用資源文件實(shí)現(xiàn)全面定制,還有其他許多次要功能
訪問(wèn)主頁(yè):http://furius.ca/xxdiff/
8.KDiff3 ——比較和合并工具
KDiff3是另一款很酷的跨平臺(tái)比較和合并工具,是用KDevelop開(kāi)發(fā)而成的。它可以在所有類似Unix的平臺(tái)上運(yùn)行,包括Linux、Mac OS X和Windows。
它可以比較或合并兩三個(gè)文件或目錄,具有下列主要的功能:
- 逐行和逐個(gè)字符地表明差異
- 支持自動(dòng)合并
- 內(nèi)置編輯器,以處理合并沖突
- 支持統(tǒng)一碼、UTF-8及另外許多編解碼器
- 允許打印輸出差異
- 支持與Windows資源管理器集成
- 還通過(guò)字節(jié)順序標(biāo)記(BOM),支持自動(dòng)檢測(cè)
- 支持手動(dòng)對(duì)齊行
- 交互式GUI及其他許多功能
訪問(wèn)主頁(yè):http://kdiff3.sourceforge.net/
9.TkDiff
TkDiff也是一款跨平臺(tái)、易于使用的GUI包裝器,面向Unix diff工具。它提供了并排查看兩個(gè)輸入文件之間差異的功能。它可以在Linux、Windows和Mac OS X上運(yùn)行。
另外,它有一些激動(dòng)人心的功能,包括diff書簽、圖形化差異圖,以便易于快速導(dǎo)航,以及其他功能。
訪問(wèn)主頁(yè):https://sourceforge.net/projects/tkdiff/