วิธีจัดเรียงข้อมูลในไฟล์ที่ใช้ Linux

บทนำ

ในคู่มือนี้ฉันจะแสดงวิธีจัดเรียงข้อมูลในไฟล์ที่คั่นด้วยและจากผลลัพธ์ของคำสั่งอื่น ๆ

คุณจะไม่ต้องแปลกใจที่ทราบว่าคำสั่งที่คุณใช้เพื่อทำงานนี้เรียกว่า "sort" สวิตช์หลักทั้งหมดของคำสั่ง sort จะได้รับในบทความนี้

ตัวอย่างข้อมูล

ข้อมูลในไฟล์สามารถจัดเรียงได้ตราบเท่าที่มีการคั่นด้วยวิธีใด ๆ

ตัวอย่างเช่นเรามาตารางลีกขั้นสุดท้ายจากสกอตติชพรีเมียร์ลีกเมื่อปีที่แล้วและเก็บข้อมูลไว้ในไฟล์ "spl"

คุณสามารถสร้างไฟล์ข้อมูลดังต่อไปนี้พร้อมกับสโมสรหนึ่งแห่งและข้อมูลของสโมสรนั้นจะคั่นด้วยเครื่องหมายจุลภาคในแต่ละแถว

ทีม เป้าหมายที่ทำประตู เป้าหมาย จุด
เซลติก 93 วันที่ 31 86
อเบอร์ดีน 62 48 71
ฮาร์ทส์ 59 40 65
เซนต์จอห์นสโตน 58 55 56
มาเธอร์ 47 63 50
รอสส์เคาน์ตี้ 55 61 48
อินเวอร์เนส 54 48 52
ดันดี 53 57 48
แพร์ 41 50 46
แฮมิลตัน 42 63 43
คิลมาร์ 41 64 36
ดันดียูไนเต็ด 45 70 28

วิธีจัดเรียงข้อมูลในไฟล์

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

เมื่อต้องการทำเช่นนี้ให้เรียกใช้คำสั่งต่อไปนี้:

sort -k2 -t, spl

เวลานี้คำสั่งจะเป็นดังนี้:

เหตุผลที่ผลลัพธ์อยู่ในลำดับนี้คือคอลัมน์ที่ 2 เป็นเป้าหมายที่ทำแต้มคอลัมน์และการจัดเรียงเรียงจากต่ำสุดไปสูงสุด

สวิตช์ -k ช่วยให้คุณสามารถเลือกคอลัมน์ที่ต้องการจัดเรียงตามและสวิตช์ -t ช่วยให้คุณสามารถเลือกตัวคั่น

เพื่อให้ตัวเองมีความสุขจริงๆแฟนของ Dundee United สามารถเรียงลำดับตามคอลัมน์ 4 โดยใช้คำสั่งต่อไปนี้:

sort -k4 -t, spl

ตอนนี้ดันดียูไนเต็ดอยู่ด้านบนและเซลติกอยู่ที่ด้านล่าง

แน่นอนว่านี่จะทำให้ทั้งแฟนเซลติกและดันดีมีความสุขจริงๆ หากต้องการนำสิ่งที่ถูกต้องคุณสามารถจัดเรียงตามลำดับย้อนกลับโดยใช้สวิตช์ต่อไปนี้:

sort -k4 -t, -r spl

สวิทช์แปลก ๆ ช่วยให้คุณสามารถเรียงลำดับแบบสุ่มซึ่งจริงๆเพียงทำให้แถวของข้อมูลลวก ๆ

คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:

sort -k4 -t, -R spl

นี้อาจทำให้เกิดปัญหาจริงถ้าคุณผสมขึ้น -r และ -R สวิตช์ของคุณ

คำสั่ง sort ยังสามารถจัดเรียงวันที่เป็นคำสั่งเดือน เพื่อแสดงให้เห็นในตารางต่อไปนี้:

เดือน ข้อมูลที่ใช้
มกราคม 4G
กุมภาพันธ์ 3000K
มีนาคม 6000K
เมษายน 100M
อาจ 5000M
มิถุนายน 200K
กรกฎาคม 4000K
สิงหาคม 2500K
กันยายน 3000K
ตุลาคม 1000K
พฤศจิกายน 3G
ธันวาคม 2G

ตารางด้านบนหมายถึงเดือนของปีและจำนวนข้อมูลที่ใช้บนอุปกรณ์เคลื่อนที่

คุณสามารถจัดเรียงวันที่ตามตัวอักษรโดยใช้คำสั่งต่อไปนี้:

sort -k1 -t, datausedlist

นอกจากนี้คุณยังสามารถจัดเรียงตามเดือนโดยใช้คำสั่งต่อไปนี้:

sort -k1 -t, -M datausedlist

ตอนนี้เห็นได้ชัดว่าตารางด้านบนแสดงให้เห็นแล้วในลำดับเดือน แต่ถ้ารายการถูกสุ่มแล้วนี้จะเป็นวิธีที่ง่ายในการจัดเรียง

เมื่อมองไปที่คอลัมน์ที่สองคุณจะเห็นว่าค่าทั้งหมดอยู่ในรูปแบบที่มนุษย์สามารถอ่านได้ซึ่งดูเหมือนจะไม่ง่ายนัก แต่คำสั่ง sort สามารถเรียงลำดับข้อมูลที่ใช้คอลัมน์โดยใช้คำสั่งต่อไปนี้:

sort -k2 -t, -h datausedlist

วิธีการเรียงข้อมูลที่ส่งผ่านจากคำสั่งอื่น ๆ

ขณะที่การเรียงลำดับข้อมูลในไฟล์เป็นประโยชน์คำสั่ง sort สามารถใช้เพื่อเรียงลำดับผลลัพธ์จากคำสั่งอื่น ๆ :

เช่นดู คำสั่ง ls :

ls-lt

คำสั่งข้างต้นส่งกลับแต่ละไฟล์เป็นแถวของข้อมูลที่มีฟิลด์ต่อไปนี้ที่แสดงในคอลัมน์:

คุณสามารถเรียงลำดับรายการตามขนาดไฟล์โดยเรียกใช้คำสั่งต่อไปนี้:

ls-lt | จัดเรียง -k5

เพื่อให้ได้ผลลัพธ์ในลำดับย้อนกลับคุณจะใช้คำสั่งต่อไปนี้:

ls-lt | จัดเรียง -k5 -r

คำสั่ง sort สามารถใช้ร่วมกับ คำสั่ง ps ซึ่งจะแสดงรายการกระบวนการที่ทำงานบนระบบของคุณ

เช่นเรียกใช้คำสั่ง ps ต่อไปนี้ในระบบของคุณ:

ps -F

คำสั่งดังกล่าวส่งกลับข้อมูลจำนวนมากเกี่ยวกับกระบวนการที่กำลังทำงานอยู่ในระบบของคุณ

หนึ่งในคอลัมน์เหล่านี้มีขนาดและคุณอาจต้องการดูว่ากระบวนการใดมีขนาดใหญ่ที่สุด

เมื่อต้องการจัดเรียงข้อมูลตามขนาดคุณจะใช้คำสั่งต่อไปนี้:

ps -eF | จัดเรียง -k5

สรุป

มีคำสั่ง sort ไม่มากนัก แต่สามารถใช้ประโยชน์ได้อย่างรวดเร็วเมื่อเรียงลำดับเอาต์พุตจากคำสั่งอื่น ๆ ลงในลำดับที่มีความหมายโดยเฉพาะอย่างยิ่งเมื่อคำสั่งไม่ได้มีสวิตช์เรียงลำดับของตัวเอง

สำหรับข้อมูลเพิ่มเติมโปรดอ่านหน้าคู่มือสำหรับคำสั่ง sort