รายการที่จะเรียงลำดับต้องถูก จำกัด ด้วยวิธีบางอย่าง
ข้อมูลในไฟล์ ข้อความ Linux สามารถเรียงลำดับได้โดยใช้คำสั่ง sort ตราบเท่าที่แต่ละ element ถูกคั่นด้วยบางวิธี บ่อยครั้งที่เครื่องหมายจุลภาคใช้เป็นตัวคั่นสำหรับข้อมูลที่คั่นด้วย
กฎพื้นฐานสำหรับการเรียงลำดับ
คำสั่ง sort เรียงลำดับบรรทัดใหม่ในไฟล์ข้อความเพื่อจัดเรียงตัวเลขและตัวอักษร กฎเริ่มต้นสำหรับคำสั่ง sort คือ:
- ข้อความที่ขึ้นต้นด้วยตัวเลขปรากฏก่อนข้อความที่ขึ้นต้นด้วยตัวอักษร เรียงลำดับตัวเลขต่ำกว่าก่อน
- ข้อความที่เริ่มต้นด้วยตัวอักษรที่ปรากฏในตัวอักษรก่อนหน้านี้ว่าจะจัดเรียงตัวอักษรตัวแรกของรายการข้อความอื่นก่อนข้อความที่ขึ้นต้นด้วยตัวอักษรที่ปรากฏในภายหลังในตัวอักษร
- ในกรณีที่ ข้อความ เริ่มต้นด้วยตัวพิมพ์ใหญ่และตัวพิมพ์เล็กของตัวอักษรเดียวกันตัวพิมพ์เล็กจะถูกเรียงลำดับก่อน
การจัดเรียงไฟล์ข้อความ
ในการเรียงลำดับบรรทัดในไฟล์ Linux ที่คั่นด้วย คำสั่ง คุณใช้ คำสั่ง sort ดังนี้:
$ sort -k2 test.txtซึ่งจะเรียงลำดับไฟล์ "test.txt" ตามอักขระที่เริ่มต้นที่คอลัมน์ที่สอง (k2 หมายถึงคอลัมน์ที่สอง) สมมติว่าเนื้อหาของไฟล์อินพุตคือ:
1, จัสตินทิมเบอร์เลค, ชื่อเรื่อง 545, ราคา $ 7.30 2, Taylor Swift, ชื่อเรื่อง 723, ราคา 7.90 เหรียญ 3, Mick Jagger, ชื่อเรื่อง 610, ราคา 7.90 เหรียญ 4, Lady Gaga, ชื่อเรื่อง 118, ราคา 7.30 $ 5, Johnny Cash, Title 482, Price $ 6.50 6, Elvis Presley, Title 335, Price $ 7.30 7, John Lennon, Title 271, ราคา $ 7.90 8, Michael Jackson, ชื่อเรื่อง 373, ราคา 5.50 เหรียญเนื่องจากคอลัมน์ที่สองในตัวอย่างนี้มีชื่อและนามสกุลเอาต์พุตเรียงลำดับจะจัดเรียงตามตัวอักษรตัวแรกของชื่อแรกของแต่ละบุคคลในคอลัมน์ที่สองคือ Elvis จอห์นจอห์นนี่จัสตินเลดี้ไมเคิลมิกและเทย์เลอร์ , ดังแสดงด้านล่าง:
6, Elvis Presley, Title 335, Price $ 6.30 7, John Lennon, Title 271, Price 7.90 $ 5, Johnny Cash, ชื่อเรื่อง 482, ราคา $ 6.50 1, Justin Timberlake, ชื่อเรื่อง 545, ราคา 6.30 ดอลลาร์ 4, เลดี้กาก้า, ชื่อเรื่อง 118, ราคา $ 6.30 8, Michael Jackson, Title 373, ราคา $ 5.50 3, Mick Jagger, Title 610 ราคา $ 7.90 2, Taylor Swift, ชื่อเรื่อง 723, ราคา $ 7.90ถ้าคุณจัดเรียงไฟล์ด้วย -k3 (ใช้เนื้อหาบรรทัดเริ่มต้นที่คอลัมน์ 3 คอลัมน์ Title) ผลลัพธ์คือ:
4, เลดี้กาก้า, ชื่อเรื่อง 118, ราคา $ 6.30 7, John Lennon, Title 271, Price $ 7.90 6, Elvis Presley, Title 335, Price $ 6.30 8, Michael Jackson, Title 373, ราคา 5.50 $ 5, Johnny Cash, ชื่อเรื่อง 482 ราคา $ 6.50 1, Justin Timberlake, Title 545, ราคา $ 6.30 3, Mick Jagger, Title 610, ราคา $ 7.90 2, Taylor Swift, ชื่อเรื่อง 723, ราคา $ 7.90และ
$ sort -k4 test.txtสร้างรายการเรียงตามราคา:
8, Michael Jackson, ชื่อเรื่อง 373, ราคา $ 5.50 1, Justin Timberlake, ชื่อเรื่อง 545, ราคา 6.30 ดอลลาร์ 4, Lady Gaga, ชื่อเรื่อง 118, ราคา 6.30 $ 6, Elvis Presley, Title 335, ราคา 6.30 $ 5, Johnny Cash, ชื่อเรื่อง 482 ราคา $ 6.50 2, Taylor Swift, Title 723, ราคา $ 7.90 3, Mick Jagger, Title 610, ราคา $ 7.90 7, John Lennon, Title 271, ราคา 7.90 เหรียญการกลับรายการ Sort
ตัวเลือก -r จะกลับรายการการเรียงลำดับ ตัวอย่างเช่นการใช้ผลลัพธ์ข้างต้น:
$ sort -k4 -r test.txtอัตราผลตอบแทน:
7, John Lennon, Title 271, Price $ 7.90 3, Mick Jagger, Title 610, Price $ 7.90 2, Taylor Swift, ชื่อเรื่อง 723, ราคา 7.90 เหรียญ 5, Johnny Cash, ชื่อเรื่อง 482, ราคา 6.50 $ 6, Elvis Presley, Title 335, ราคา $ 6.30 4, เลดี้กาก้า, ชื่อเรื่อง 118, ราคา $ 6.30 1, จัสตินทิมเบอร์เลค, ชื่อเรื่อง 545, ราคา 6.30 ดอลลาร์ 8, Michael Jackson, ชื่อเรื่อง 373, ราคา 5.50 เหรียญกำลังบันทึกไฟล์ที่เรียงลำดับ
การจัดเรียงไฟล์จะไม่บันทึก เมื่อต้องการบันทึกรายการที่จัดเรียงไว้ในไฟล์คุณจะใช้ตัวดำเนินการเปลี่ยนเส้นทาง:
sort -k4 -r test.txt> test_new.txtโดยที่ "test_new.txt" เป็นไฟล์ใหม่
การเรียงลำดับเอาต์พุตสตรีม
นอกจากนี้คุณยังสามารถใช้คำสั่ง sort เพื่อส่งออกสตรีมเช่นตัวดำเนินการท่อ:
$ ls -al | จัดเรียง -r -n -k5นี่เป็นผลลัพธ์ของรายการไฟล์ที่สร้างโดย คำ สั่ง ls ตามขนาดไฟล์เริ่มต้นด้วยไฟล์ที่ใหญ่ที่สุด ตัวดำเนินการ -n ระบุการเรียงลำดับตัวเลขแทนที่จะเป็นตัวอักษร