Thêm game tại WuGames.ioTài trợKhám phá kho game trình duyệt miễn phí — chơi ngay, không tải, không đăng ký.Chơi ngay

Xóa Dòng Trùng Lặp

Khử trùng mọi danh sách văn bản, log, CSV hay email chỉ với một cú nhấp. Giữ dòng xuất hiện đầu, có tùy chọn sắp xếp và bỏ qua chữ hoa thường.

Xóa Dòng Trùng Lặp - Công Cụ Khử Trùng Văn Bản

Xóa Dòng Trùng Lặp là công cụ khử trùng cấp dòng tương đương với cú pháp Unix `awk '!seen[$0]++'` hay `sort -u`, nhưng có giao diện, tùy chọn bỏ qua chữ hoa/thường, tùy chọn loại dòng trống, và bảng phụ hiển thị chính xác những dòng trùng nào đã bị bỏ. Thuật toán dựng một Set JavaScript với các khóa dòng đã chuẩn hóa (viết thường nếu bạn tắt phân biệt hoa thường) và duyệt đầu vào một lần theo thứ tự gốc, chỉ giữ lần đầu tiên mỗi dòng duy nhất xuất hiện. Chính sách 'lần xuất hiện đầu thắng' này quan trọng: khác với `sort -u` sắp xếp lại, công cụ này giữ nguyên thứ tự đầu vào trừ khi bạn bật Sắp Xếp một cách rõ ràng. Trường hợp sử dụng điển hình: khử trùng danh sách email nhận được thu thập từ nhiều newsletter, làm sạch dòng CSV khách hàng xuất ra khi cùng bản ghi được nhập hai lần, xóa thông báo lỗi lặp lại khỏi file log để tìm mẫu lỗi duy nhất, hợp nhất danh sách hostname cho inventory Ansible, và khử trùng chuỗi dịch trước khi gộp vào file bản địa hóa.

Cái gì được tính là 'dòng trùng lặp' chính xác — khoảng trắng và chữ hoa có quan trọng không?

Mặc định, hai dòng được coi là trùng nếu chuỗi ký tự khớp nhau hoàn toàn — khoảng trắng đầu và cuối có tính, và chữ hoa có quan trọng ('Táo' khác 'táo'). Bật tùy chọn chữ hoa thành VIẾT HOA hay viết thường sẽ chuẩn hóa cả hai chuỗi so sánh trước khi đối chiếu, nên 'TÁO', 'Táo', và 'táo' gộp thành một dòng. Để bỏ qua cả khác biệt khoảng trắng (' a' so với 'a '), tiền xử lý bằng Làm Sạch Văn Bản hoặc trim từng dòng trước.

Bản nào được giữ khi có trùng lặp — lần đầu hay lần cuối?

Luôn luôn là lần đầu tiên. Bộ duyệt khử trùng dùng một Set ghi lại nội dung dòng lần đầu xuất hiện, và bỏ qua mọi dòng giống hệt tiếp theo. Điều này quan trọng khi đầu vào của bạn có ý nghĩa thứ tự — ví dụ CSV trong đó dòng 1 là bản ghi gốc và dòng 7 là bản import trùng đã cũ. Nếu bạn cần giữ lần cuối thay vào đó (phổ biến trong gộp 'ghi cuối thắng'), đảo danh sách trước bằng công cụ Đảo Ngược Danh Sách, khử trùng, rồi đảo lại.

Khác gì với `sort -u`, `awk`, hay `uniq` của Unix?

`uniq` chỉ gộp các dòng trùng liền kề và yêu cầu đầu vào đã sắp xếp — trùng không liền kề sống sót. `sort -u` sắp xếp và khử trùng nhưng phá hủy thứ tự gốc. `awk '!seen[$0]++'` giữ thứ tự khử trùng và khớp với điều công cụ này làm, nhưng yêu cầu terminal. Tính năng 'Remove Duplicates' của Excel hoạt động tương tự nhưng bị giới hạn số dòng và buộc bạn vào một nền tảng. Công cụ này cho cùng kết quả như cách awk với GUI, cộng bảng dòng bị xóa mà không công cụ dòng lệnh nào hiển thị.

Xóa Dòng Trùng Lặp — Khử trùng mọi danh sách văn bản, log, CSV hay email chỉ với một cú nhấp. Giữ dòng xuất hiện đầu, có tùy chọn sắp xếp và
Xóa Dòng Trùng Lặp

Tùy chọn 'Hiện các dòng bị lặp' thực sự hiển thị gì?

Nó xuất ra bảng riêng liệt kê mọi dòng trùng đã bị bỏ qua, theo thứ tự gặp phải. Mỗi mục hiển thị nội dung và (khi hữu ích) số dòng đầu vào nó nằm trên đó. Vết kiểm tra này quan trọng cho kịch bản tuân thủ — ví dụ làm sạch cơ sở dữ liệu khách hàng theo GDPR — để bạn có thể chứng minh một dòng cụ thể là trùng chứ không phải mất dữ liệu âm thầm. Nó cũng giúp debug bất ngờ về phân biệt hoa thường ('[email protected]' so với '[email protected]').

Có mở rộng được tới file lớn như CSV 100.000 dòng không?

Có. Khử trùng dựa trên Set là thời gian trung bình O(n) và bộ nhớ ~O(n), nên danh sách 100k dòng thường khử trùng trong dưới 100 ms trên laptop hiện đại. Nút cổ chai là textarea trình duyệt — quá ~5 MB văn bản dán thì bản thân việc dán có thể chậm, nhưng việc khử trùng vẫn nhanh. Với file vài triệu dòng dùng Unix: `awk '!seen[$0]++' input.txt > output.txt` chạy stream mà không tải toàn file vào RAM, và xử lý đầu vào lớn tùy ý.

Tùy chọn 'Xóa dòng trống' có loại cả dòng chỉ có khoảng trắng không?

Có. Khi bật, các dòng hoàn toàn trống hoặc chỉ chứa ký tự khoảng trắng (khoảng trắng, tab, khoảng trắng không ngắt) bị bỏ trước khi khử trùng chạy. Điều này hữu ích vì các dòng trống trong dữ liệu CSV thường trùng nhau (mọi dòng trống trông giống nhau), làm phồng số 'duplicates removed' mà không xóa nội dung thật. Tắt tùy chọn này nếu muốn giữ dòng trống phân cách giữa các phần.

Dữ liệu của tôi có được tải lên hay lưu ở đâu không?

Không. Việc khử trùng chạy hoàn toàn trong JavaScript trình duyệt trên giá trị textarea — không có fetch() đến backend, không có sự kiện analytics chứa nội dung, không ghi localStorage. Bạn có thể xác minh trong tab Network của DevTools rằng nhấp Xóa kích hoạt 0 request ra ngoài. Điều này làm công cụ an toàn cho danh sách nhạy cảm như email nhân viên, hồ sơ khách hàng, hostname nội bộ, hay nội dung bản quyền theo NDA.