So sánh hai văn bản

Dán văn bản gốc và văn bản mới vào hai ô rồi bấm "So sánh": công cụ chỉ ra dòng nào được thêm, bị xoá hay giữ nguyên. Văn bản không rời khỏi máy của bạn.

Tối đa 5.000 dòng mỗi bên
Tối đa 5.000 dòng mỗi bên
Kết quả
Hiện Sao chép dạng

Bấm "So sánh" để xem dòng nào được thêm, bị xoá hoặc giữ nguyên.

Cách sử dụng

  1. Dán văn bản gốc (bản cũ) vào ô bên trái và văn bản mới vào ô bên phải; trên điện thoại hai ô xếp dọc. Muốn thử nhanh, bấm "Ví dụ".
  2. Bật "Bỏ qua khoảng trắng đầu, cuối dòng" hoặc "Bỏ qua hoa, thường" (trên thanh công cụ) nếu bạn không muốn những khác biệt đó được tính; kết quả được so sánh lại ngay khi bạn bật hoặc tắt. Mặc định cả hai đều tắt.
  3. Bấm "So sánh". Mỗi dòng của kết quả có dấu + (thêm), − (xoá) hoặc để trống (giữ nguyên), kèm màu và số dòng ở cả hai bản. Các ô Thêm, Xoá, Giữ phía trên kết quả cho biết số dòng mỗi loại.
  4. Bấm vào Thêm, Xoá hoặc Giữ để ẩn hoặc hiện từng loại dòng. Rồi bấm "Sao chép kết quả": chỉ các dòng đang hiện được sao chép, mặc định chỉ lấy nội dung; chọn "Sao chép dạng: Có dấu + −" nếu muốn mỗi dòng bắt đầu bằng dấu.
  5. Bấm "Đảo" để đổi chỗ hai văn bản, "Toàn màn hình" khi văn bản dài.

So sánh hoạt động thế nào

  • Công cụ so sánh theo từng dòng, không so sánh từng chữ. Một dòng bị sửa dù chỉ một ký tự sẽ hiện là một dòng bị xoá (bản cũ) và một dòng được thêm (bản mới).
  • Kết quả giữ lại nhiều dòng giống nhau nhất có thể, tức là ít thay đổi nhất để biến văn bản gốc thành văn bản mới (thuật toán Myers, thư viện jsdiff). Với dòng giữ nguyên, công cụ hiển thị chữ của văn bản mới.
  • Dấu xuống dòng kiểu Windows (CRLF) và kiểu Linux, Mac (LF) được coi là một. Dòng cuối cùng không có dấu xuống dòng vẫn tính là một dòng; dấu xuống dòng ở cuối văn bản không tạo thêm dòng trống.
  • Khi bật tuỳ chọn bỏ qua, các dòng được so sánh ở dạng đã chuẩn hoá (cắt khoảng trắng đầu cuối, hoặc đổi sang chữ thường) nhưng kết quả vẫn hiển thị nguyên văn. "Bỏ qua khoảng trắng" chỉ áp dụng cho đầu và cuối dòng, không phải khoảng trắng ở giữa dòng.
  • Mỗi bên tối đa 5.000 dòng và 1 MB. Vượt giới hạn thì không so sánh thay vì cắt bớt âm thầm.
  • Nếu hai văn bản khác nhau cực kỳ nhiều (ví dụ cùng các dòng nhưng thứ tự đảo ngược), công cụ không chờ tìm lời giải tối ưu: nó chỉ giữ phần đầu và phần cuối giống nhau, phần giữa hiện là xoá rồi thêm, và báo rõ điều này trên kết quả.
  • Nội dung hiển thị dưới dạng chữ thuần: mã HTML hay <script> trong văn bản chỉ hiện ra như chữ, không bao giờ được chạy.

Câu hỏi thường gặp

Văn bản của tôi có bị gửi lên máy chủ không?

Không. Việc so sánh chạy bằng JavaScript ngay trong trình duyệt; văn bản không được gửi đi, không được lưu lại ở đâu cả.

Công cụ có so sánh từng chữ hay từng ký tự trong một dòng không?

Không, chỉ so sánh theo dòng. Dòng bị sửa hiện là một dòng xoá và một dòng thêm. Nếu cần xem chính xác chữ nào đổi, hãy đặt mỗi câu hoặc mỗi mệnh đề trên một dòng trước khi so sánh.

Vì sao hai văn bản trông giống nhau mà vẫn báo khác?

Thường là do khoảng trắng ở đầu hoặc cuối dòng, chữ hoa chữ thường, hoặc ký tự nhìn giống nhau nhưng khác mã (ví dụ chữ có dấu gõ theo hai cách khác nhau). Hãy bật tuỳ chọn bỏ qua khoảng trắng hoặc hoa thường nếu muốn bỏ qua những khác biệt đầu.

Giới hạn độ dài là bao nhiêu?

Tối đa 5.000 dòng và 1 MB cho mỗi bên (đo theo UTF-8). Vượt giới hạn thì công cụ báo rõ và không so sánh; hãy chia nhỏ văn bản rồi so sánh từng phần.

Vì sao có thông báo "kết quả chỉ giữ phần đầu và phần cuối giống nhau"?

Khi hai văn bản khác nhau quá nhiều dòng, việc tìm cách so khớp tốt nhất có thể mất rất lâu và làm đơ trình duyệt. Công cụ dừng lại và chỉ so khớp phần đầu và phần cuối. Nếu bạn cần so khớp chi tiết, hãy chia văn bản thành các phần nhỏ hơn.

Làm sao chỉ sao chép các dòng được thêm (hoặc bị xoá)?

Bỏ chọn các ô còn lại ở hàng "Hiện" (ví dụ chỉ để "Thêm") rồi bấm "Sao chép kết quả". Mặc định chỉ chép nội dung các dòng, không có dấu + ở đầu; chọn "Sao chép dạng: Có dấu + −" nếu bạn muốn có dấu. Bộ lọc chỉ ảnh hưởng đến những gì hiện ra và được sao chép, không làm đổi kết quả so sánh.

Vì sao nút "Sao chép kết quả" báo không thể sao chép?

Trình duyệt có thể chặn quyền ghi vào bộ nhớ tạm (clipboard). Hãy chọn kết quả bằng chuột rồi nhấn Ctrl+C (hoặc ⌘+C trên Mac) để sao chép.