1. 程式人生 > >每天一點Linux命令:文字比較--diff與vimdiff

每天一點Linux命令:文字比較--diff與vimdiff

diff命令

diff命令可以逐行比較文字檔案的內容,並輸出其中的不同。

diff命令的使用方法:

diff [option] [file1] [file2]

使用引數:

diff命令的使用引數還是挺多的,這裡只列出個人認為比較常用的一些引數,如想檢視更多,可以使用diff --help命令檢視幫助。

引數
-y 以並列的方式比較兩個檔案
-W 使用-y引數後,可以用-W調整顯示寬度
-c 以上下文的方式來比較兩個檔案
-u 將兩個文字整合到一起,並用"-" "+"來顯示檔案的差異

這裡有兩個檔案,列出如下:
test1
在這裡插入圖片描述
test2
在這裡插入圖片描述

比較示範

不加引數

diff test1 test2
在這裡插入圖片描述
在輸出的結果裡,需要先說明一下:
a表示增加(add)
d表示刪除(delete)
c表示改變,也就是文字不同的意思(change)

我們在看一下比較結果:
其中1,3d0表示第一個檔案相比於第二個檔案,第一行至第三行應該刪掉。第二個檔案刪掉第0行,就是不刪的意思。
字母前表示第一個檔案,字母后的表示第二個檔案,數字表示的是行號。
"<“表示的內容是第一個檔案的內容,”>"表示的是第二個檔案的內容。


類似的,我們也就好容易理解6a4,5的意思了,就是第一個檔案的第6行後面應該增加"> g" "> h"這兩行內容,也就是第二行檔案的第4-5行。

並排格式(-y)

使用-y引數可以是兩個文字並列的顯示出來,如下:
在這裡插入圖片描述
可以看到這裡會將檔案內容並排顯示出來。
這裡也可以使用"-W"引數來指定,兩個檔案間的排列寬度,如下:
在這裡插入圖片描述

以上下文的方式比較檔案(-c)

"-c"引數會使檔案以上下文的方式展示:
在這裡插入圖片描述
可以看到以***表示test1檔案的內容,—表示test2檔案的內容,這裡會顯示建立這兩個檔案的具體時間。
-表示test1檔案相比於test2應該去掉的內容,+表示相比於test2檔案應該增加的內容。

統一文字格式(-u)

使用-u引數會使兩個文字合併到一個文字,統一成一個格式。
在這裡插入圖片描述

diff比較目錄

diff命令也可以比較目錄,顯示目錄下檔案的區別。
在這裡插入圖片描述

vimdiff

vimdiff是一種視覺化的文字比較工具,是呼叫vim來進行文字比較的,也因為如此,可以以顏色來區分檔案之間的差異。
,最多可以同時開啟4個檔案。
比如我再新加兩個檔案test3和test4。直接進行比較,檢視結果:
vimdiff test1 test2 test3 test4
在這裡插入圖片描述因為用vim相當於同時開啟4個檔案,所以,需要退出4次vim才能退出來,即輸入4次":q",每次退出一個檔案。