檔案對比工具

2021-09-28 19:32:48 字數 2957 閱讀 8260

2.cmp

3.patch

通常,乙個軟體包的不同版本之間,比較配置檔案與原始檔案包的差異時會用到對比工具,而很多時候所說的對比都是之在ascii純文字檔案上的對比, 最常見的文字對比工具就是diff了,除此之外,比較非文字文件檔案之間的差異時,可以用cmp命令。

diff顧名思義,對比兩個檔案之間的差異的,並且是以行為單位來進行對比的。一般用在ascii純文字檔案上。

因此,diff通常用在對比同一檔案或軟體的新舊版本差異上。

語法,選項與引數

語法

diff [-bbi] from-file to-file

選項與引數

引數含義

from-file

檔名,作為原始對比檔案

to-file

檔名,作為目標對比檔案

注:from-file或to-file可以用-(stdin)來代替,另外不要對比兩個完全不相同的檔案,沒有意義,也比不出來什麼

選項含義

-b忽略一行中僅有空白的差異,如"about me"和"about me"會被是為相同

-b忽略空白行的差異

-i忽略大小寫的差異

使用樣例

首先我們利用前面學過的命令,進行如下操作:

將/etc/passwd檔案的第4行刪除,並且將第6行的內容替換為"no six line",然後將編輯過的內容輸出到passwd.new檔案

cat /etc/passwd | sed -e 『4d』 -e 『6c no six line』 > passwd.new

然後我們來對比一下檔案內容

4d3:左邊第四行被刪除了,基礎是右邊的第三行

< adm:x:3:4:adm:/var/adm:/sbin/nologin:左邊(

6c5:左邊第6行的內容被右邊第5行的內容做取代了

< sync:x:5:0:sync:/sbin:/bin/sync:左邊第6行的內容

---> no six line:右邊第5行的內容

diff /etc/rc.d/rc0.d /etc/rc.d/rc5.d

相對於diff的廣泛用途,cmp似乎就用的沒那麼多了,cmp主要也是用於對比2個檔案,不過,它主要是利用位元組為單位去做對比,因此,cmp也可以用來去比較binary file

語法,選項

語法

cmp [-l] file1 file2

選項與

選項含義

-l將所有不同都列出來,因為cmp預設只會輸出第乙個發現的不同

下面我們來用cmp命令比較一下上面做成的檔案。

上面的對比結果顯示,第4行發現了共有106個位元組有差異。

path與diff命令密不可分,diff可以用來比較兩個檔案之間的差異,我們可以將差異製作成公升級補丁,這樣就可以利用公升級補丁來進行公升級。

diff -naur /etc/passwd passwd.new > passwd.patch

首先利用diff命令,進行檔案內容對比,並將差異內容輸出到passwd.patch

====新舊檔案差異

+++ passwd.new 2019-10-20 09:42:16.303122230 +0800

@@ -1,9 +1,8 @@ <<

====新舊文件要修改資料的界定範圍,舊文件在1-9行,新文件在1-8行

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

-adm:x:3:4:adm:/var/adm:/sbin/nologin <<

====左側檔案刪除內容

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

-sync:x:5:0:sync:/sbin:/bin/sync <<

====左側檔案刪除內容

+no six line <<

====右側檔案新增內容

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

語法,選項

語法

patch -pn < patch_file更新

patch -r -pn < patch_file還原

選項與

選項含義

-p數字,取消幾層目錄的意思

-r代表還原,將新的檔案還原成原來的舊檔案版本

使用樣例

這裡我們將passwd.new還原成/etc/passwd原來的內容

// p0表示要還原的檔案和補丁檔案在同乙個目錄下,所以無需刪減目錄層數

patch -r -p0 < passwd.patch

發現,還原後,檔案的大小一樣

批量對比檔案內容 免費檔案內容對比工具

今天給大家介紹一款 windows 下的文字檔案對比和合併工具,支援 高亮 逐行顯示差異 整合 windows 資源管理器等功能 diffinity diffinity是乙個免費的windows差異合併工具,專注於準確易讀的源 它將比較兩個文字檔案的內容,並逐行顯示所有差異,以及不同的單個字元 單詞...

git工具 對比檔案的不同

對比工作區和某個版本中檔案的不同 1 繼續編輯檔案code.txt,在其中新增一行內容 2 現在要對比工作區中code.txt和head版本中code.txt的不同,使用如下命令 前面沒有出現 就是兩個檔案中都有的內容,代表head版本中檔案 對應工作區中的檔案 3 使用git checkout c...

資料夾差異檔案對比工具

coding utf 8 created on 2010 4 30 author shiyong import os class compare object 資料夾比較工具 功能 目前只未比較檔案的名稱和大小,未比較md5 def init self constructor 遍歷比較 def vi...