Xóa dòng trùng lặp, giữ thứ tự danh sách

Dán danh sách, giữ dòng trùng xuất hiện đầu hoặc cuối theo đúng thứ tự gốc. Chọn cách so chữ hoa, dấu tiếng Việt và dòng trống trước khi sao chép kết quả.

Dán danh sách và chọn dòng cần giữ

Xử lý trên trình duyệt · lưu nháp khi được phép Sẵn sàng
Danh sách không trùng

Lọc danh sách dán vào trong ba bước

01

Dán danh sách

Dán danh sách vào ô đầu vào, mỗi mục trên một dòng. Bạn cũng có thể chọn Dùng ví dụ để thử quy tắc so sánh trước.

Dòng nào được coi là trùng?

Công cụ so cả dòng, bỏ khoảng trắng đầu/cuối khi tạo khóa so sánh nhưng giữ nguyên cách viết của dòng được chọn trong kết quả.

Quy tắcVí dụKết quả so sánh
Bỏ hoa/thường (mặc định)Hà Nội / hà nộiĐược coi là một; chỉ giữ dòng đầu hoặc cuối bạn chọn.
Không phân biệt dấu (tùy chọn)Đà Nẵng / Da NangĐược coi là một khi bật tùy chọn này cùng với bỏ hoa/thường.
Khoảng trắng đầu/cuối" Huế " / "Huế"Được coi là một; khoảng trắng của dòng được giữ không bị cắt.
Khoảng trắng trong dòngHà Nội / Hà NộiVẫn là hai dòng khác nhau.

Chọn dòng đầu hay dòng cuối?

Giữ dòng đầu hoặc cuối
Giữ lần xuất hiện đầu dùng cách viết của dòng đầu tiên trong mỗi nhóm trùng; giữ lần cuối dùng dòng xuất hiện cuối cùng. Các dòng còn lại luôn theo thứ tự tương ứng trong danh sách gốc, không tự sắp xếp A–Z.
Số dòng đã xóa
“Dòng đã xóa” đếm các bản trùng trong số dòng được đem so. Dòng trống bị bỏ được báo riêng; nếu bạn tắt Bỏ dòng trống, các dòng trắng cũng được so trùng và tối đa một dòng được giữ.
Khác nghĩa không phải trùng
Công cụ không phát hiện từ lặp trong một dòng, lỗi chính tả, URL tương đương hay hai câu cùng nghĩa. Hãy rà kết quả khi khác biệt về dấu hoặc hoa/thường có ý nghĩa với mã, tên riêng và dữ liệu định danh.

Nếu cần mở file TXT/CSV hoặc sắp xếp sau khi lọc, dùng Lọc Trùng Lặp & Sắp Xếp Dữ Liệu.

Văn bản và bản nháp được lưu ở đâu?

Việc lọc dòng chạy trong trình duyệt, không gửi nội dung đến API lọc trùng của KitoTool. Khi trình duyệt cho phép lưu trữ cục bộ, trang tự lưu văn bản nhập và tùy chọn để khôi phục lần sau; nút Xóa gỡ bản nháp đó. Trên thiết bị dùng chung, hãy Xóa sau khi hoàn tất. File TXT tải về chứa kết quả và dấu nhận dạng UTF-8 để mở chữ có dấu.

Bình luận & góp ý

Đánh giá

Đang tải đánh giá…

Viết bình luậnKhông cần đăng nhập

Không chia sẻ mật khẩu, thông tin nhạy cảm hoặc nội dung tệp đang xử lý.

Duyệt trước khi đăng. Email không công khai.

Nhúng công cụ này vào website của bạnMiễn phí · Sao chép một lần, công cụ tự cập nhật

Dán iframe vào HTML, WordPress hoặc nền tảng hỗ trợ nhúng. Công cụ chạy trong trình duyệt người dùng; bạn có thể chỉnh chiều cao và giao diện.

Xem hướng dẫn nhúng công cụ và các nền tảng hỗ trợ →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/vi/duplicate-line-cleaner/" title="Xóa Dòng Trùng Lặp — KitoTool" width="100%" height="920" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Công cụ miễn phí bởi <a href="https://kitotool.com/vi/xoa-dong-trung-lap/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

Mã có dòng ghi nguồn hiển thị dưới iframe; liên kết được đánh dấu nofollow theo hướng dẫn cho widget phân phối rộng.

Tùy chọn: tự điều chỉnh chiều cao iframe

Thêm đoạn mã này một lần trên trang chứa iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>