Văn bản

Sort & Dedupe Lines

Sắp xếp các dòng văn bản theo bảng chữ cái, loại bỏ dòng trùng lặp, dòng trống và khoảng trắng thừa.

This tool sorts a list of lines alphabetically and removes duplicates and blank lines — a routine cleanup that's slow and error-prone to do by hand.

How to use it

Common uses

Things to keep in mind

Plain alphabetical sorting puts "file10" before "file2", since it compares strings character by character — natural sort is needed for the expected order with numbers.

Duplicate removal is case-sensitive by default — "Text" and "text" count as different lines unless the text is normalized to one case first.

Bài viết về công cụ này: Sắp xếp và loại bỏ dòng trùng lặp: dùng để làm gì

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

Sự khác biệt giữa sắp xếp phân biệt và không phân biệt chữ hoa/thường là gì?

Khi tắt "Không phân biệt chữ hoa/thường", chữ hoa và chữ thường được sắp xếp riêng theo mã ký tự; khi bật, nó so sánh các dòng bất kể chữ hoa/thường, đưa "Táo" và "táo" lại gần nhau.

Bản sao, dòng trống và khoảng trắng được xử lý như thế nào?

Hai dòng giống hệt nhau (theo tùy chọn chữ hoa/thường đã chọn) được coi là bản sao và chỉ dòng đầu tiên được giữ lại; "Cắt khoảng trắng" loại bỏ khoảng trắng đầu và cuối trước khi sắp xếp, và "Xóa dòng trống" loại bỏ các dòng không có ký tự hiển thị.

Các dòng văn bản của tôi có được gửi đến máy chủ không?

Không, việc sắp xếp và loại bỏ trùng lặp diễn ra hoàn toàn trong trình duyệt của bạn bằng JavaScript — không có dữ liệu nào được gửi đi nơi khác.

Vì sao "10" lại đứng trước "9" khi sắp xếp theo bảng chữ cái?

Sắp xếp theo bảng chữ cái (từ điển) so sánh các chuỗi ký tự từng ký tự một như văn bản, chứ không phải như số: "1" nhỏ hơn "9" theo thứ tự từ điển, nên "10" đứng trước "9". Để có thứ tự theo số, các chuỗi trước tiên phải được phân tích thành số.

Có thể sắp xếp theo thứ tự tự nhiên (natural sort) không?

Sắp xếp tự nhiên nhận diện các chuỗi chữ số bên trong một dòng như những con số, còn phần còn lại vẫn so sánh như văn bản — nhờ đó "file2.txt" đứng trước "file10.txt", tiện lợi cho tên tệp hoặc phiên bản có tiền tố là văn bản.

Bài viết: Văn bản

Case Converter: vì sao có các kiểu đặt tên khác nhau

Vì sao trong một dự án, biến được viết camelCase nhưng tệp lại kebab-case, và những quy tắc này đến từ đâu.

Text Diff: thuật toán tìm sự khác biệt giữa hai văn bản như thế nào

Thuật toán diff tìm tập hợp thay đổi tối thiểu giữa hai phiên bản văn bản như thế nào.

Biểu thức chính quy: cú pháp cơ bản và các mẫu thường gặp

Cách đọc một biểu thức chính quy, và khớp tham lam khác khớp lười ra sao.

String Escape: vì sao cùng một văn bản cần escape khác nhau

Vì sao cùng một dấu ngoặc kép lại được escape khác nhau trong chuỗi JS, JSON và lệnh shell.

CRLF so với LF: vì sao ký tự cuối dòng vẫn còn quan trọng

Vì sao một tệp được viết trên Windows có thể hiển thị là "toàn bộ đã thay đổi" trong git trên Linux.

Đếm ký tự và từ: vì sao không phải lúc nào cũng đơn giản

Vì sao một emoji hoặc chữ có dấu có thể được tính là nhiều ký tự cùng lúc.

Lorem Ipsum: văn bản giữ chỗ đến từ đâu và dùng để làm gì

Vì sao các nhà thiết kế cố tình dùng văn bản "vô nghĩa" thay vì nội dung thật trong bản phác thảo.

Slugify: cách biến bất kỳ văn bản nào thành URL

Một tiêu đề như "Xin chào, Thế giới! Bạn khỏe không?" biến thành chuỗi tương thích URL như xin-chao-the-gioi-ban-khoe-khong ra sao.

Markdown: vì sao cú pháp văn bản đơn giản đánh bại trình soạn thảo phức tạp

Vì sao lập trình viên chọn viết tài liệu bằng Markdown thay vì trình soạn thảo văn bản định dạng phong phú.

Khoảng trắng và ký tự vô hình: nguyên nhân ẩn giấu của các lỗi kỳ lạ

Vì sao hai chuỗi trông giống hệt nhau có thể không khớp do một ký tự vô hình.

Text Reverse: vì sao "đảo ngược văn bản" khó hơn tưởng tượng

Vì sao đảo ngược chuỗi ngây thơ có thể biến một emoji thành các byte không sử dụng được.

Phân tích tần suất văn bản: vì sao cần đếm số lần từ lặp lại

Tần suất chữ cái trong văn bản mã hóa giúp phá vỡ các mật mã thay thế đơn giản nhất như thế nào.