文字比對工具(Diff)

免費線上文字比對工具。在瀏覽器中逐行比較兩段文字,準確看出新增、刪除與修改的內容,並可將結果複製為統一格式修補檔。

文字比對工具做什麼


文字比對工具把同一段文字的兩個版本對齊,標出它們之間的改動。兩個版本都有的行保持原樣;只出現在第一個版本的行標為刪除,只出現在第二個版本的行標為新增。你得到的是一份簡短的改動清單,而不是兩份得自己並排細讀的長檔案。

什麼時候需要它


每當兩樣東西本該相同、其中之一卻不同時:在一台伺服器上能用、換一台就出錯的設定檔,有人悄悄改過的合約條款,以前一直乾淨的紀錄檔,逐漸偏離原文的譯文。把兩個版本從頭讀到尾既慢又靠不住——眼睛會漏掉一個改過的數字。比對不會漏。

如何看懂結果


符號意義
該行在兩段文字中相同,僅作為上下文顯示。
-該行只存在於原始文字中。
+該行只存在於修改後的文字中。
@@標記一段改動的開始,並給出它在各自文字中涵蓋的行號。

這些是統一格式(unified format)的符號,與 diff -u、git 和 patch 所用的完全一致。本頁產生的修補檔可以存成檔案,用這些工具套用。

使用方式


比對在你的瀏覽器中完成。你貼上的內容不會被傳送到任何地方——這一點很重要,因為人們要比對的檔案往往正是不該上傳的那些:憑證、合約、客戶資料。

  1. 把原始版本貼到第一個欄位,把修改後的版本貼到第二個欄位。
  2. 選擇是否忽略大小寫與空白——當兩個檔案出自不同編輯器時很有用。
  3. 閱讀標記出的行,或複製統一格式修補檔,把這次改動套用到別處。

常見問題


我的文字會上傳到伺服器嗎?
不會。比對完全在你的瀏覽器中以 JavaScript 完成。本頁不傳送任何內容,也不保存任何內容。

我只加了一個空格,為什麼說整行都改了?
因為預設的比對是嚴格的。開啟「忽略空白」後,僅在縮排或空格上不同的行會被視為相同——顯示的內容仍然是每個檔案的本來面貌。

可以直接比較檔案而不是貼上文字嗎?
用任何編輯器開啟檔案,全選後貼到這裡。本頁比較的是文字,所以凡是能當作文字讀取的內容都可以比較:程式碼、CSV、紀錄檔、JSON、一般文章。

Windows 和 Unix 的換行字元會有問題嗎?
不會。CRLF 和 LF 被當作同一種換行處理,所以在 Windows 上儲存的檔案不會顯示成每一行都改過。

修補檔有什麼用?
它就是 diff -u 產生、git 和 patch 能讀取的統一格式。把它存成檔案,就能把這次改動原樣套用到原檔案的另一份副本上;也可以附在工單裡,讓別人看到你改了什麼。

Wikipedia — diff
Wikipedia — Unified format
Wikipedia — Longest common subsequence
Wikipedia — Patch (computing)
Wikipedia — File comparison