diff是用來比較兩個文字檔的差異的工具,它有三種格式,下面用執行個體介紹一下:
準備三個測試檔案1.txt 2.txt 3.txt
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 1.txt姓名:畢小朋年齡:保密性別:公的部落格:blog.csdn.net/wirelessqa微博:www.weibo.com/wirelessqa郵箱:wirelessqa.me@gmail.combixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 2.txt姓名:畢小朋年齡:28性別:公的部落格:blog.csdn.net/wirelessqa微博:www.weibo.com/wirelessqa郵箱:wirelessqa.me@gmail.combixiaopeng@bixiaopengtekiMacBook-Pro ~$ cat 3.txt姓名:畢小朋年齡:保密性別:公的QQ:782670627部落格:blog.csdn.net/wirelessqa微博:www.weibo.com/wirelessqa郵箱:wirelessqa.me@gmail.com
說明:1.txt跟2.txt相比內容有修改,1.txt跟3.txt相比3.txt內容有增加,3.txt與1.txt相比內容有所減少
一. 正常格式的diff
格式:$ diff <變動前的檔案> <變動後的檔案>
內容改變(c,代表change)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 1.txt 2.txt2c2< 年齡:保密---> 年齡:28
小解其意:
2c2表示檔案1第二行內容改變,變動後變為檔案2的第二行,c表示內容改變
< 年齡:保密 表示該行被去除
--- :分享符
> 年齡:28 : 增加了該行,“年齡:28 ”是內容
"增加"(a,代表addition)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 1.txt 3.txt3a4> QQ:782670627
"刪除"(d,代表deletion)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff 3.txt 1.txt4d3< QQ:782670627
二. 上下文格式的diff
格式:$
diff -c <變動前的檔案> <變動後的檔案>
說明:-c表示:content
內容改變(change)
"增加"(+)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -c 1.txt 3.txt*** 1.txt Mon Aug 12 22:54:56 2013--- 3.txt Mon Aug 12 23:08:08 2013****************** 1,6 ****--- 1,7 ---- 姓名:畢小朋 年齡:保密 性別:公的+ QQ:782670627 部落格:blog.csdn.net/wirelessqa 微博:www.weibo.com/wirelessqa 郵箱:wirelessqa.me@gmail.com
"刪除"(-)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -c 3.txt 1.txt*** 3.txt Mon Aug 12 23:08:08 2013--- 1.txt Mon Aug 12 22:54:56 2013****************** 1,7 **** 姓名:畢小朋 年齡:保密 性別:公的- QQ:782670627 部落格:blog.csdn.net/wirelessqa 微博:www.weibo.com/wirelessqa 郵箱:wirelessqa.me@gmail.com--- 1,6 ----
三. 合并格式的diff
如果兩個檔案相似性很高,那麼上下文格式的diff將顯示大量重複的內容,很浪費空間,"合并格式"的diff就是將兩個檔案的上下文合并在一起顯示
格式:$ diff -u <變動前的檔案> <變動後的檔案>
內容改變
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 1.txt 2.txt--- 1.txt 2013-08-12 22:54:56.000000000 +0800+++ 2.txt 2013-08-12 22:56:19.000000000 +0800@@ -1,5 +1,5 @@ 姓名:畢小朋-年齡:保密+年齡:28 性別:公的 部落格:blog.csdn.net/wirelessqa 微博:www.weibo.com/wirelessqa
小解其意:
---表示變動前的檔案
+++表示變動後的檔案
開始行和結束行都用@@
它將兩個檔案的上下文,合并顯示在一起,所以叫做"合并格式"。每一行最前面的標誌位,空表示無變動,減號表示第一個檔案刪除的行,加號表示第二個檔案新增的行。
"增加"(+)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 1.txt 3.txt--- 1.txt 2013-08-12 22:54:56.000000000 +0800+++ 3.txt 2013-08-12 23:08:08.000000000 +0800@@ -1,6 +1,7 @@ 姓名:畢小朋 年齡:保密 性別:公的+QQ:782670627 部落格:blog.csdn.net/wirelessqa 微博:www.weibo.com/wirelessqa 郵箱:wirelessqa.me@gmail.com
"刪除"(-)
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ diff -u 3.txt 1.txt--- 3.txt 2013-08-12 23:08:08.000000000 +0800+++ 1.txt 2013-08-12 22:54:56.000000000 +0800@@ -1,7 +1,6 @@ 姓名:畢小朋 年齡:保密 性別:公的-QQ:782670627 部落格:blog.csdn.net/wirelessqa 微博:www.weibo.com/wirelessqa 郵箱:wirelessqa.me@gmail.com