ToolDeck

ตัวเรียงบรรทัด

เรียงบรรทัดตามตัวอักษร ตามความยาว ย้อนกลับ หรือสุ่มลำดับบรรทัด

ลองตัวอย่าง

บรรทัดอินพุต

บรรทัดที่เรียงแล้ว

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
บรรทัดที่เรียงแล้วจะปรากฏที่นี่…

การเรียงบรรทัดคืออะไร?

การเรียงบรรทัดคือกระบวนการจัดเรียงบรรทัดในกลุ่มข้อความใหม่ตามกฎที่กำหนด ได้แก่ ลำดับตัวอักษร ลำดับย้อนกลับ ความยาวบรรทัด หรือการสุ่ม การเรียงบรรทัดออนไลน์เป็นงานที่พบบ่อยเมื่อทำงานกับไฟล์ log, ข้อมูล CSV, รายการการกำหนดค่า หรือเนื้อหาข้อความธรรมดาที่ลำดับมีความสำคัญ การดำเนินการนี้แบ่งข้อความที่อักขระขึ้นบรรทัดใหม่ ใช้ฟังก์ชันเปรียบเทียบกับอาร์เรย์ที่ได้ แล้วรวมบรรทัดที่เรียงแล้วกลับเข้าด้วยกัน

ภาษาโปรแกรมส่วนใหญ่เรียงสตริงโดยใช้การเปรียบเทียบแบบ lexicographic ตามค่า Unicode code point ซึ่งหมายความว่าตัวพิมพ์ใหญ่จะเรียงก่อนตัวพิมพ์เล็ก ("Banana" ก่อน "apple") และตัวเลขจะเรียงก่อนตัวอักษร การเรียงแบบ locale-aware ซึ่งบางครั้งเรียกว่า natural sort หรือ collation แก้ปัญหานี้โดยใช้กฎเฉพาะของแต่ละภาษา ฟังก์ชัน localeCompare() ใน JavaScript, locale.strxfrm() ใน Python และคำสั่ง sort ของ POSIX พร้อม LC_COLLATE ต่างก็รองรับการเรียงแบบ locale-aware

การเรียงตามความยาวมีประโยชน์เมื่อต้องการหารายการที่สั้นหรือยาวที่สุดในรายการ ระบุค่าผิดปกติในผลลัพธ์ log หรือจัดระเบียบรายการตามความซับซ้อน การเรียงย้อนกลับจะพลิกลำดับบรรทัดที่มีอยู่โดยไม่ต้องจัดเรียงใหม่ ซึ่งแตกต่างจากการเรียงตัวอักษรแบบ Z-A การสุ่มจะกำหนดคีย์การเรียงแบบสุ่มให้แต่ละบรรทัด ทำให้ได้ลำดับที่แตกต่างกันในทุกครั้ง การสลับระหว่างโหมดต่างๆ บนข้อมูลเดิมเร็วกว่าการเขียนสคริปต์เฉพาะครั้ง

ทำไมต้องใช้ตัวเรียงบรรทัดนี้?

วางข้อความของคุณ เลือกโหมดการเรียง แล้วรับผลลัพธ์ทันที ไม่ต้องตั้งค่า command line ไม่ต้องเขียนสคริปต์ ไม่ต้องติดตั้งแพ็คเกจ

เรียงได้ทันที
ผลลัพธ์ปรากฏขณะที่คุณพิมพ์หรือวางข้อความ สลับระหว่าง 6 โหมดการเรียงและเปรียบเทียบผลลัพธ์โดยไม่ต้องรันซ้ำ
🔒
ประมวลผลโดยให้ความสำคัญกับความเป็นส่วนตัว
การเรียงทั้งหมดทำงานในเบราว์เซอร์ของคุณด้วย JavaScript ข้อความของคุณยังคงอยู่บนอุปกรณ์ของคุณ ไม่มีการอัปโหลดไปยังเซิร์ฟเวอร์หรือบันทึกข้อมูล
🔀
6 โหมดการเรียง
A-Z, Z-A, สั้นที่สุดก่อน, ยาวที่สุดก่อน, ลำดับย้อนกลับ และการสุ่ม ครอบคลุมงานการจัดลำดับบรรทัดที่พบบ่อยที่สุด
📋
ไม่ต้องมีบัญชี
เปิดหน้าเว็บแล้วเริ่มเรียงได้เลย ไม่ต้องสมัครสมาชิก ไม่ต้องติดตั้งส่วนเสริม ไม่ต้องใช้แอปบนเดสก์ท็อป ใช้งานได้บนทุกอุปกรณ์ที่มีเบราว์เซอร์ทันสมัย

กรณีการใช้งานตัวเรียงบรรทัด

การพัฒนา Frontend
เรียงรายการ CSS class, คำสั่ง import หรือคีย์การแปล i18n ตามตัวอักษร การจัดลำดับที่สม่ำเสมอลดความขัดแย้งในการ merge ใน version control และทำให้การ code review รวดเร็วขึ้น
วิศวกรรม Backend
จัดลำดับรายการ dependency ใน package.json, requirements.txt หรือ go.mod ก่อน commit เรียง SQL column name เมื่อสร้างคำสั่ง CREATE TABLE หรือเปรียบเทียบความแตกต่างของ schema
DevOps และโครงสร้างพื้นฐาน
เรียงชื่อตัวแปรสภาพแวดล้อมในไฟล์ .env, รายการใน Kubernetes ConfigMap หรือบล็อกตัวแปร Terraform การจัดลำดับตามตัวอักษรช่วยให้สังเกตเห็นค่าซ้ำและค่าที่หายไประหว่างการตรวจสอบ
QA และการทดสอบอัตโนมัติ
เรียง log ผลการทดสอบตาม timestamp หรือข้อความเพื่อระบุข้อผิดพลาดได้รวดเร็ว สุ่มข้อมูลอินพุตการทดสอบเพื่อตรวจสอบว่าพฤติกรรมของแอปพลิเคชันไม่ขึ้นอยู่กับลำดับการแทรกข้อมูล
วิศวกรรมข้อมูล
จัดลำดับส่วนหัว CSV หรือรายการคอลัมน์ก่อนเขียนสคริปต์การย้าย schema เรียงตัวอย่างข้อมูลตามความยาวเพื่อค้นหาแถวที่ถูกตัดทอนหรือค่าที่ยาวผิดปกติใน data pipeline
นักเรียนและผู้เรียนรู้
เรียงรายการคำศัพท์ รายการบรรณานุกรม หรือบันทึกการเรียนรู้ตามตัวอักษร สุ่มบรรทัดของบัตรคำสำหรับการทบทวนแบบสุ่มโดยไม่ต้องติดตั้งแอปแยกต่างหาก

คู่มืออ้างอิงโหมดการเรียงบรรทัด

เครื่องมือนี้รองรับ 6 โหมดการเรียง ตารางด้านล่างอธิบายแต่ละโหมด วิธีการเปรียบเทียบที่ใช้ และตัวอย่างผลลัพธ์สำหรับรายการอินพุต: apple, banana, cherry, date, fig

โหมดคำอธิบายวิธีการใน JSตัวอย่างผลลัพธ์
A-ZAlphabetical ascendinglocaleCompare()apple, banana, cherry
Z-AAlphabetical descendinglocaleCompare() reversedcherry, banana, apple
Length (short)Shortest line firsta.length - b.lengthfig, date, apple, banana
Length (long)Longest line firstb.length - a.lengthbanana, apple, date, fig
ReverseFlip line order, no reorderingArray.reverse()Last line becomes first
RandomRandomized comparator (biased)Math.random() - 0.5Different every run

อัลกอริทึมการเรียงที่อยู่เบื้องหลัง

เมื่อคุณเรียก Array.sort() ใน JavaScript เอนจิน V8 (Chrome, Node.js) ใช้ Timsort ตั้งแต่ปี 2019 runtime อื่นๆ ใช้อัลกอริทึมที่แตกต่างกัน ตารางด้านล่างเปรียบเทียบอัลกอริทึมการเรียงที่พบบ่อยที่สุดที่ใช้ใน standard library ของภาษาต่างๆ ทุกอัลกอริทึมจัดการงานการเรียงบรรทัดในเครื่องมือนี้ได้ในเวลาต่ำกว่าหนึ่งมิลลิวินาทีสำหรับอินพุตทั่วไป (ต่ำกว่า 100,000 บรรทัด)

อัลกอริทึมใช้โดยความซับซ้อนหมายเหตุ
TimsortPython, Java (Arrays.sort)O(n log n)Stable, fast on partially sorted data
QuicksortC stdlib, V8 (older)O(n log n)In-place, unstable by default
Merge sortMost stable-sort implementationsO(n log n)Stable, predictable, uses extra memory
IntrosortC++ std::sort, .NETO(n log n)Hybrid: quicksort + heapsort fallback
Radix sortFixed-length keys, integersO(nk)Non-comparative, linear for short keys

ตัวอย่างโค้ด

เรียงบรรทัดด้วยโค้ดใน JavaScript, Python, Go และ command line แต่ละตัวอย่างครอบคลุมการเรียงตามตัวอักษร ตามความยาว และการย้อนกลับ

JavaScript
const text = `banana
apple
cherry
date
fig`

// Sort A-Z (locale-aware)
const az = text.split('\n').sort((a, b) => a.localeCompare(b)).join('\n')
// → "apple\nbanana\ncherry\ndate\nfig"

// Sort by line length, shortest first
const byLen = text.split('\n').sort((a, b) => a.length - b.length).join('\n')
// → "fig\ndate\napple\nbanana\ncherry"

// Reverse line order (no alphabetical sorting)
const reversed = text.split('\n').reverse().join('\n')
// → "fig\ndate\ncherry\napple\nbanana"

// Remove duplicates and sort
const unique = [...new Set(text.split('\n'))].sort().join('\n')
Python
text = """banana
apple
cherry
date
fig"""

lines = text.splitlines()

# Sort A-Z (case-insensitive)
az = sorted(lines, key=str.lower)
# → ['apple', 'banana', 'cherry', 'date', 'fig']

# Sort by line length
by_len = sorted(lines, key=len)
# → ['fig', 'date', 'apple', 'banana', 'cherry']

# Reverse original order
rev = lines[::-1]
# → ['fig', 'date', 'cherry', 'apple', 'banana']

# Shuffle randomly
import random
random.shuffle(lines)  # modifies in place
Go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "banana\napple\ncherry\ndate\nfig"
	lines := strings.Split(text, "\n")

	// Sort A-Z
	sort.Strings(lines)
	fmt.Println(strings.Join(lines, "\n"))
	// → apple\nbanana\ncherry\ndate\nfig

	// Sort by length
	sort.Slice(lines, func(i, j int) bool {
		return len(lines[i]) < len(lines[j])
	})
	fmt.Println(strings.Join(lines, "\n"))
	// → fig\ndate\napple\nbanana\ncherry
}
CLI (bash)
# Sort lines A-Z
sort file.txt

# Sort lines Z-A (reverse)
sort -r file.txt

# Sort numerically (first field)
sort -n data.txt

# Sort by line length (awk + sort + cut)
awk '{ print length, $0 }' file.txt | sort -n | cut -d' ' -f2-

# Shuffle lines randomly
shuf file.txt          # GNU coreutils
sort -R file.txt       # alternative (not truly uniform)

# Sort and remove duplicates
sort -u file.txt

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

การเรียงแบบ A-Z กับ natural sort แตกต่างกันอย่างไร?
การเรียงแบบ A-Z (lexicographic) เปรียบเทียบตัวอักษรตาม Unicode code point ซึ่งหมายความว่า "item10" จะเรียงก่อน "item2" เพราะตัวอักษร '1' มี code point ต่ำกว่า '2' Natural sort จะถือตัวเลขที่ฝังอยู่เป็นค่าตัวเลข ทำให้ "item2" มาก่อน "item10" เครื่องมือนี้ใช้การเรียงแบบ lexicographic ที่รองรับ locale ผ่าน localeCompare() ซึ่งจัดการตัวอักษรที่มีสำเนียงได้อย่างถูกต้อง แต่ไม่ทำ natural sort สำหรับตัวเลข
ข้อความของฉันถูกส่งไปยังเซิร์ฟเวอร์เมื่อเรียงบรรทัดหรือไม่?
ไม่ การเรียงทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณโดยใช้วิธีการ Array.sort() ของ JavaScript ข้อความไม่เคยออกจากอุปกรณ์ของคุณ คุณสามารถตรวจสอบได้โดยเปิดแท็บ Network ใน DevTools ของเบราว์เซอร์และยืนยันว่าไม่มีการส่งคำร้องขอเมื่อคุณวางและเรียงข้อความ
เครื่องมือนี้รองรับบรรทัดได้มากแค่ไหน?
เครื่องมือนี้ทำงานได้ดีกับข้อมูลหลายหมื่นบรรทัด การนำ Timsort ไปใช้ใน V8 ของ JavaScript จัดการ 100,000 บรรทัดได้ในเวลาต่ำกว่า 100 มิลลิวินาทีบนฮาร์ดแวร์ทันสมัย สำหรับไฟล์ที่ใหญ่กว่าสองสามเมกะไบต์ เครื่องมือ CLI อย่างคำสั่ง sort ของ Unix มีประสิทธิภาพมากกว่าเพราะใช้ disk-based merge sort และหลายเธรดได้
การเรียงแบบไม่คำนึงถึงตัวพิมพ์ทำงานอย่างไร?
เครื่องมือนี้ใช้ String.localeCompare() พร้อมตัวเลือก { sensitivity: 'base' } ซึ่งทำให้การเปรียบเทียบไม่คำนึงถึงตัวพิมพ์ ทำให้ "Apple" และ "apple" เรียงอยู่ใกล้กันแทนที่จะแยกเป็นกลุ่มต่างกัน โดยค่าเริ่มต้น localeCompare() จะคำนึงถึงตัวพิมพ์ ต้องระบุตัวเลือกนี้อย่างชัดเจนเพื่อพฤติกรรมแบบไม่คำนึงถึงตัวพิมพ์ หากต้องการการเรียงแบบคำนึงถึงตัวพิมพ์อย่างเคร่งครัดที่ตัวพิมพ์ใหญ่มาก่อน คำสั่ง sort ของ Unix โดยไม่มีแฟล็ก -f จะให้พฤติกรรมนั้น
ฉันสามารถเรียงบรรทัดและลบบรรทัดซ้ำได้พร้อมกันหรือไม่?
เครื่องมือนี้เรียงบรรทัดแต่ไม่ลบบรรทัดซ้ำ หากต้องการลบบรรทัดซ้ำ ให้ใช้เครื่องมือ Duplicate Line Remover ในหมวดหมู่เดียวกัน คุณสามารถเรียงข้อความที่นี่ก่อน แล้วนำผลลัพธ์ไปวางใน duplicate remover เพื่อรับรายการที่สะอาด ไม่ซ้ำ และเรียงแล้ว
การเรียงย้อนกลับกับการเรียง Z-A แตกต่างกันอย่างไร?
การเรียงย้อนกลับจะพลิกลำดับบรรทัดเดิม: บรรทัดสุดท้ายกลายเป็นบรรทัดแรก บรรทัดที่สองจากท้ายกลายเป็นบรรทัดที่สอง และต่อๆ ไป ไม่มีการเปรียบเทียบตามตัวอักษรเกิดขึ้น การเรียง Z-A จะจัดบรรทัดในลำดับตัวอักษรจากมากไปน้อยโดยไม่คำนึงถึงตำแหน่งเดิม หากอินพุตเรียงแบบ A-Z แล้ว การย้อนกลับและ Z-A จะให้ผลลัพธ์เหมือนกัน แต่สำหรับอินพุตที่ยังไม่ได้เรียง ผลลัพธ์จะแตกต่างกัน
ฉันจะเรียงบรรทัดตามคอลัมน์หรือช่องข้อมูลเฉพาะได้อย่างไร?
เครื่องมือนี้เรียงตามเนื้อหาบรรทัดทั้งหมด หากต้องการเรียงตามคอลัมน์เฉพาะ (เช่น ช่องที่สองในไฟล์ที่คั่นด้วย tab) ให้ใช้คำสั่ง sort ของ Unix พร้อมแฟล็ก -k: sort -t$'\t' -k2,2 file.txt ใน Python ให้แบ่งแต่ละบรรทัดและใช้ฟังก์ชัน key: sorted(lines, key=lambda x: x.split('\t')[1])