舉例說明Linux diff 命令

來源:互聯網
上載者:User

在比較檔案的時候,通常會用基於GUI的軟體。很少有人真正會為了這個目的使用命令列工具。雖然說使用命令列來比較檔案/目錄並不像一件小事兒那樣容易,但是如果你是一個Linux使用者,那麼我想你應該知道如何通過命令列比較檔案,因為一旦使用了它,你會認為它絕對是一個快速的方法。

在本篇中,我們將通過一些執行個體來學習如何使用diff命令。

Linux diff 命令

讓我們通過一些實際的例子理解diff命令。

假設我們有兩個檔案(file1 和 file2):

$ cat file1
Hi,
Hello,
How are you?
I am fine,
Thank you.


$ cat file2
Hello,
Hi,
How are you?
I am fine.

你可以看見兩個檔案有些小的不同。現在,讓我們看看diff命令如何找出兩者的不同的。

像這樣運行diff命令:

$ diff file1 file2
1d0
< Hi,
2a2
> Hi,
4,5c4
< I am fine,
< Thank you.
---
> I am fine.

你可以看見diff後面跟了兩個檔案的名字作為命令列的參數,並且它在輸出中產生了差異比較。輸出並不容易理解。理由是,這是被電腦使用的而不是為了人類。儘管如此,讓我們一步步解碼輸出:

注意 – 在下面的文本中,file1和file2將被當作舊檔案和新檔案。

1d0
< Hi,

這裡,1d0這一行意味著舊檔案的第一行應該被刪除(d)以使兩個檔案的第一行同步。舊檔案中需要被刪除的行以'<'標記。

2a2
> Hi,

這裡,2a2行意味著新檔案中的第二行應該加到舊檔案的第二行後。要添加的行顯示在輸出的下一行用'>'標記。

4,5c4
< I am fine,
< Thank you.
---
> I am fine.

這裡,4,5c4這一行意味著在舊檔案中的4到5行現在已被改變並且需要用新檔案中的第4行代替。添加和刪除的行分別用'>'和'<'表示。

那麼,來總結一下,

  • 首先diff命令的第一個參數被視為舊檔案而第二個參數被視為新檔案。
  • 像1d0、2a2、4,5c4這種運算式可以用文法解碼為 [舊檔案的行號或者行的範圍][行為][新檔案的行號或者行的範圍]。這裡的'行為'可以是追加,刪除或者改變替換。
  • '<'代表刪除的行,而'>'代表添加的行。

除了檔案外,diff命令還可以比較兩個目錄。讓我們通過一個例子學習。

這裡是'new_dir'目錄包含的內容:

$ ls new_dir/
file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt

這是'origdir'目錄含有的內容:(譯註:原文為and here are the contents of a directory named ‘olddir’ ,其中'old_dir'應為筆誤。)

$ ls orig_dir/
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt test
file2 frnd frnd1.cpp log1.txt log3.txt log5.txt

下面是diff命令執行後的輸出:

$ diff new_dir/ orig_dir/
Only in new_dir/: file
Only in orig_dir/: test

你可以看到當diff命令被用來比較這兩個目錄時,很容易就會顯示兩個檔案中缺失的檔案。

更多詳情見請繼續閱讀下一頁的精彩內容:

Linux下使用diff和patch製作及打補丁

Linux diff命令參數及用法詳解---比較檔案的差異

Linux系統補丁工具patch AND diff 

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.