ข้อความ

Sort & Dedupe Lines

เรียงบรรทัดข้อความตามตัวอักษร ลบรายการซ้ำ บรรทัดว่าง และช่องว่างส่วนเกิน

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.

บทความเกี่ยวกับเครื่องมือนี้: การเรียงบรรทัด: ทำไมการเรียงตามตัวอักษรถึงต่างจากการเรียงตามตัวเลข

คำถามที่พบบ่อย

การเรียงลำดับแบบสนใจและไม่สนใจตัวพิมพ์ใหญ่-เล็กต่างกันอย่างไร?

เมื่อปิด "ไม่สนใจตัวพิมพ์ใหญ่-เล็ก" ตัวพิมพ์ใหญ่และเล็กจะถูกเรียงแยกกันตามรหัสอักขระ; เมื่อเปิด จะเปรียบเทียบบรรทัดโดยไม่สนใจตัวพิมพ์ใหญ่-เล็ก ทำให้ "Apple" และ "apple" อยู่ใกล้กัน

รายการซ้ำ บรรทัดว่าง และช่องว่างถูกจัดการอย่างไร?

สองบรรทัดที่เหมือนกัน (ตามตัวเลือกตัวพิมพ์ใหญ่-เล็กที่เลือก) ถือเป็นรายการซ้ำและจะเก็บไว้เพียงบรรทัดแรก; "ตัดช่องว่าง" จะลบช่องว่างต้นและท้ายก่อนเรียงลำดับ และ "ลบบรรทัดว่าง" จะกำจัดบรรทัดที่ไม่มีอักขระที่มองเห็นได้

บรรทัดข้อความของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?

ไม่ การเรียงลำดับและการกำจัดรายการซ้ำเกิดขึ้นทั้งหมดในเบราว์เซอร์ของคุณด้วย JavaScript — ไม่มีข้อมูลใดถูกส่งไปที่อื่น

ทำไม "10" ถึงอยู่ก่อน "9" เมื่อเรียงตามตัวอักษร?

การเรียงตามตัวอักษร (lexicographic) เปรียบเทียบสตริงทีละอักขระในฐานะข้อความ ไม่ใช่ตัวเลข: "1" มีค่าน้อยกว่า "9" ตามลำดับตัวอักษร ทำให้ "10" มาก่อน "9" หากต้องการลำดับตามตัวเลขจริง สตริงต้องถูกแปลงเป็นตัวเลขก่อน

เรียงลำดับแบบธรรมชาติ (natural sort) ได้หรือไม่?

การเรียงลำดับแบบธรรมชาติรู้จักลำดับตัวเลขภายในบรรทัดว่าเป็นตัวเลข ส่วนอักขระที่เหลือเปรียบเทียบแบบข้อความ ทำให้ "file2.txt" อยู่ก่อน "file10.txt" ซึ่งมีประโยชน์กับชื่อไฟล์หรือเวอร์ชันที่มีคำนำหน้าเป็นข้อความ

บทความ: ข้อความ

camelCase, snake_case, kebab-case: ควรใช้รูปแบบไหนเมื่อไหร่

เหตุใดจึงมี camelCase, snake_case และ kebab-case และแต่ละแบบมักใช้ที่ไหน

Text Diff: อัลกอริทึมหาความแตกต่างของข้อความทำงานอย่างไร

อัลกอริทึม diff หาชุดการเปลี่ยนแปลงที่น้อยที่สุดระหว่างข้อความสองเวอร์ชันได้อย่างไร

Regular Expression: พื้นฐานและกับดักของการจับคู่แบบโลภ

ความแตกต่างระหว่างการจับคู่แบบโลภและแบบขี้เกียจใน regex และเหตุใดจึงสำคัญในทางปฏิบัติ

การ Escape สตริง: ทำไมกฎถึงต่างกันใน JS, JSON, shell และ regex

เหตุใดจึงไม่มีกฎการ escape เดียวที่ใช้ได้ทุกที่ — JS, JSON, shell และ regex ต่างก็มีกฎของตัวเอง

CRLF กับ LF: ทำไมการขึ้นบรรทัดใหม่ยังคงสร้างปัญหา

ความแตกต่างระหว่าง CRLF กับ LF มาจากไหน และเหตุใดยังคงสร้างปัญหากับ git และสคริปต์

การนับตัวอักษรและคำ: ทำไม Unicode ทำให้ซับซ้อน

เหตุใดอิโมจิหนึ่งตัวที่เห็นด้วยตาจึงอาจประกอบด้วย code point หลายตัวใน Unicode

Lorem Ipsum: ข้อความหลอกนี้มาจากไหนและทำไมไม่มีความหมาย

ข้อความ Lorem Ipsum มาจากไหนจริง ๆ และเหตุใดจึงใช้ข้อความไร้ความหมายแทนข้อความจริง

Slugify: หัวข้อกลายเป็น URL ที่ใช้งานได้อย่างไร

หัวข้อบทความกลายเป็น URL ที่สะอาดและอ่านง่ายด้วยเครื่องหมายขีดได้อย่างไร

Markdown: ทำไมจึงกลายเป็นมาตรฐานของเอกสาร

เหตุใด Markdown จึงยังอ่านง่ายแม้ในรูปแบบดิบ ต่างจาก HTML

ช่องว่างที่มองไม่เห็น: ทำไมการเปรียบเทียบข้อความที่ดูเหมือนกันจึงล้มเหลว

ช่องว่างที่มองไม่เห็นเพียงตัวเดียวทำให้การเปรียบเทียบข้อความสองชิ้นที่ดูเหมือนกันล้มเหลวได้อย่างไร

การกลับข้อความ: ทำไมจึงพังกับอิโมจิ

เหตุใดการกลับข้อความแบบง่ายจึงทำให้อิโมจิที่ประกอบจาก code point หลายตัวพังไป

การวิเคราะห์ความถี่ข้อความ: จาก word cloud สู่การถอดรหัส

การวิเคราะห์ความถี่ตัวอักษรช่วยถอดรหัสแบบแทนที่อักษรง่าย ๆ ในอดีตได้อย่างไร