Skip to main content

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

Anonim

บทนำ

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

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

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

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

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

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

ทีมเป้าหมายที่ทำประตูเป้าหมายจุด
เซลติก933186
อเบอร์ดีน624871
ฮาร์ทส์594065
เซนต์จอห์นสโตน585556
มาเธอร์476350
รอสส์เคาน์ตี้556148
อินเวอร์เนส544852
ดันดี535748
แพร์415046
แฮมิลตัน426343
คิลมาร์416436
ดันดียูไนเต็ด457028

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

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

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

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