การใช้คำสั่ง Linux Sort

รายการที่จะเรียงลำดับต้องถูก จำกัด ด้วยวิธีบางอย่าง

ข้อมูลในไฟล์ ข้อความ 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 ระบุการเรียงลำดับตัวเลขแทนที่จะเป็นตัวอักษร