比較兩檔案是否相同 cmp diff

2021-06-17 00:22:13 字數 917 閱讀 6026

cmp file1 file2

cmp比較兩個檔案,給出差別字元的位置和行號。

比較方法:對兩個檔案的比較是逐字比較的。

diff file1 file

比較兩個不同的檔案或不同目錄下的兩個同名檔案。

比較方法:diff試圖找到file1和file2中連續相同行,這些相同行被改名為hunk的差別行所隔開。需要注意的是diff進行比較的單位是行,這點跟cmp不同,此外diff有不同的輸出格式。

diff file1file2 : 普通輸出格式:很少用來發布軟體補丁。

diff -c numfile1 file2 :上下文輸出格式 

num代表上下文個數。注意,要正確執行patch必須給出至少 

兩個上下文行。

diff -ufile1 file2: 統一輸出格式。需要注意的是只有gnu diff能夠生成統一格式的diffs檔案,同時也只 有gnupatch能夠接受統一格式,所以,如果要發布的補丁的目標系統上沒有gnu,diff和gunpatch,那就不能使用統一格式,而應使用標準的上下文格式。

用diff命令建立補丁:

用diff命令建立補丁時,要在命令列指定輸出格式為上下文或統一diff,並且在diff命令列中按老檔案先於新檔案的順序輸入檔名,輸出檔名字尾應當是.diff或.patch。

diff -c oldfile newfile >file.patch 

:生成乙個上下文格式的diff。

diff -u oldfile newfile >file.patch 

:建立統一格式的diff。

使用補丁:

patch -p0

-pnum中的num是指定使用補丁前補丁中所包含的檔名中需要剝離的"/ "的重數。

若在安裝完補丁後發現錯誤,則只要簡單的在原命令列中加上-r選項後再安裝一次,該補丁就能得到原來的檔案。

比較兩個目錄檔案是否相同

有時候我們需要比較vss裡兩個目錄下的source是否一致,而但從日期根本看不出什麼來,所以需要逐一的比較,專案很大時,這項工作比較惱人。所以我做了乙個工具,它能調查出來哪些檔案內容相同,哪些不同,哪些僅在乙個目錄存在。pdir.pl usr bin perl die parameter is no...

陣列比較是否相同

環境 陣列a 和陣列b int arraya new int arrayb new 我們需要比較的是 陣列的內容,而不是陣列的 物件引用所以我們不能想當然的用 array.equals arraya arrayb 結果為false 現在我們來看看怎樣比較陣列的內容,當然你可以用迴圈來比較,在此我們就...

陣列比較是否相同

環境 陣列a 和陣列b int arraya new int arrayb new 我們需要比較的是陣列的內容,而不是陣列的物件引用所以我們不能想當然的用array.equals arraya,arrayb 結果為false 現在我們來看看怎樣比較陣列的內容,當然你可以用迴圈來比較,在此我們就不談迴...