So Sánh Văn Bản (Diff)
Công cụ so sánh văn bản trực tuyến miễn phí. So sánh hai văn bản theo từng dòng ngay trong trình duyệt, thấy chính xác phần nào được thêm, xóa hay sửa, và sao chép kết quả dưới dạng bản vá hợp nhất.
Công cụ so sánh văn bản làm gì
Công cụ so sánh văn bản xếp hai phiên bản của cùng một văn bản cạnh nhau và đánh dấu điều gì đã thay đổi giữa chúng. Những dòng có mặt ở cả hai được giữ nguyên; những dòng chỉ có ở phiên bản đầu được đánh dấu là đã xóa, còn những dòng chỉ có ở phiên bản sau được đánh dấu là đã thêm. Kết quả là một danh sách thay đổi ngắn gọn, thay vì hai tệp dài mà bạn phải tự đọc song song.
Khi nào bạn cần đến nó
Bất cứ khi nào hai thứ đáng lẽ phải giống nhau mà một trong hai lại không: một tệp cấu hình chạy được trên máy chủ này nhưng lỗi trên máy chủ khác, một điều khoản hợp đồng bị ai đó sửa mà không báo, một bản ghi trước đây vẫn sạch, một bản dịch đã trôi xa khỏi bản gốc. Đọc trọn cả hai phiên bản thì chậm và không đáng tin — mắt người bỏ sót một chữ số đã đổi. Việc so sánh thì không bỏ sót.
Cách đọc kết quả
| Ký hiệu | Ý nghĩa |
|---|---|
| Dòng này giống nhau ở cả hai văn bản và chỉ hiện ra để làm ngữ cảnh. | |
| - | Dòng này chỉ có trong văn bản gốc. |
| + | Dòng này chỉ có trong văn bản đã sửa. |
| @@ | Mở đầu một khối thay đổi và cho biết nó bao trùm những dòng nào trong mỗi văn bản. |
Đây là các ký hiệu của định dạng hợp nhất (unified format), đúng định dạng mà diff -u, git và patch dùng. Bản vá do trang này tạo ra có thể lưu thành tệp và áp dụng bằng những công cụ đó.
Cách sử dụng
Việc so sánh chạy ngay trong trình duyệt của bạn. Không có gì bạn dán vào bị gửi đi đâu cả, và điều đó quan trọng vì những tệp người ta đem so sánh thường đúng là những tệp không nên tải lên: thông tin đăng nhập, hợp đồng, dữ liệu khách hàng.
- Dán phiên bản gốc vào ô thứ nhất và phiên bản đã sửa vào ô thứ hai.
- Chọn có bỏ qua chữ hoa/thường và khoảng trắng hay không — hữu ích khi hai tệp được viết bằng những trình soạn thảo khác nhau.
- Đọc những dòng được đánh dấu, hoặc sao chép bản vá hợp nhất để áp dụng thay đổi ở nơi khác.
Câu hỏi thường gặp
Văn bản của tôi có được tải lên máy chủ không?
Không. Việc so sánh diễn ra hoàn toàn trong trình duyệt của bạn, bằng JavaScript. Trang này không gửi đi gì và không lưu gì cả.
Vì sao nó báo một dòng đã thay đổi khi tôi chỉ thêm một khoảng trắng?
Vì mặc định việc so sánh là chính xác từng ký tự. Hãy bật “Bỏ qua khoảng trắng” và những dòng chỉ khác nhau ở thụt lề hay khoảng cách sẽ được coi là giống nhau — màn hình vẫn hiển thị mỗi tệp đúng như nó vốn có.
Tôi có thể so sánh tệp thay vì dán văn bản không?
Mở tệp bằng bất kỳ trình soạn thảo nào, chọn tất cả rồi dán vào đây. Trang này so sánh văn bản, nên bất cứ thứ gì đọc được dưới dạng văn bản đều so sánh được: mã nguồn, CSV, bản ghi, JSON, văn xuôi thông thường.
Ký tự xuống dòng của Windows và Unix có gây vấn đề không?
Không. Ký tự xuống dòng CRLF và LF được coi là cùng một dấu ngắt dòng, nên một tệp lưu trên Windows sẽ không hiện ra như thể mọi dòng đều đã đổi.
Bản vá dùng để làm gì?
Đó là định dạng hợp nhất do diff -u tạo ra và được git cùng patch đọc. Lưu nó thành tệp và bạn có thể áp dụng đúng thay đổi này lên một bản sao khác của tệp gốc, hoặc đính kèm vào phiếu công việc để người khác thấy bạn đã đổi những gì.
Wikipedia — diff
Wikipedia — Unified format
Wikipedia — Longest common subsequence
Wikipedia — Patch (computing)
Wikipedia — File comparison