วิธีจัดเรียงไฟล์ข้อความใน Linux โดยใช้คำสั่ง sort

วิธีจัดเรียงไฟล์ข้อความใน Linux โดยใช้คำสั่ง sort

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





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





คำสั่ง sort คืออะไร?

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





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

วิธีใช้ sort ใน Linux

แม้ว่า sort จะมีวิธีการและแฟล็กต่างๆ ที่คุณสามารถใช้ได้ แต่ก็ยังง่ายต่อการเรียนรู้



ไวยากรณ์พื้นฐาน

ไวยากรณ์พื้นฐานของการใช้ sort คือ:

sort filename

...ที่ไหน ชื่อไฟล์ เป็นพาธสัมบูรณ์หรือแบบสัมพัทธ์ของไฟล์ข้อความที่คุณต้องการจัดเรียง





โดยค่าเริ่มต้น sort จะจัดเรียงเนื้อหาตามเกณฑ์ต่อไปนี้:

  1. บรรทัดที่ขึ้นต้นด้วยอักขระตัวเลขจะมีลำดับความสำคัญสูงสุด
  2. คำสั่งจะเรียงลำดับบรรทัดตามลำดับตัวอักษร หลังจากเรียงลำดับบรรทัดที่ขึ้นต้นด้วยตัวเลข
  3. บรรทัดที่ขึ้นต้นด้วยอักขระตัวพิมพ์เล็กจะอยู่ก่อนบรรทัดที่ขึ้นต้นด้วยอักขระตัวเดียวกันที่เป็นตัวพิมพ์ใหญ่

พิจารณาไฟล์ข้อความชื่อ textfile.txt ซึ่งมีข้อมูลดังต่อไปนี้:





ในการจัดเรียงไฟล์โดยใช้การกำหนดค่าเริ่มต้น:

sort textfile.txt

เอาท์พุท:

สร้างไฟล์เอาต์พุตใหม่

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

หยุดรหัสดักจับโหมดเคอร์เนลที่ไม่คาดคิด
sort -o sortedfile filename

...ที่ไหน sortedfile เป็นชื่อของไฟล์ที่ส่งออกและ ชื่อไฟล์ เป็นไฟล์ต้นฉบับที่ต้องการการเรียงลำดับ

ในการเรียงลำดับ textfile.txt และสร้างไฟล์เอาต์พุตใหม่สำหรับเนื้อหา:

sort -o sorted.txt textfile.txt

เอาท์พุท:

เรียงไฟล์หลายไฟล์

ในการจัดเรียงไฟล์มากกว่าหนึ่งไฟล์พร้อมกัน เพียงแค่ส่งชื่อไฟล์ที่คั่นด้วยเครื่องหมาย ช่องว่าง อักขระ.

sort textfile.txt textfile2.txt

เอาท์พุท:

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

ย้อนกลับ จัดเรียงไฟล์

หากคุณต้องการย้อนกลับการจัดเรียงเนื้อหา ให้ใช้ปุ่ม -NS ตั้งค่าสถานะด้วยคำสั่งเริ่มต้น NS -NS ในคำสั่งต่อไปนี้ย่อมาจาก ย้อนกลับ .

sort -r textfile.txt

เอาท์พุท:

จัดเรียงไฟล์ตามตัวเลข

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

sort -n numbers.txt

เอาท์พุท:

หากคุณต้องการเรียงลำดับจากมากไปหาน้อย ให้กลับการจัดเรียงโดยใช้ -NS ตัวเลือกพร้อมกับ -NS ตั้งค่าสถานะในคำสั่ง

sort -rn numbers.txt

เอาท์พุท:

ละเว้นขนาดตัวพิมพ์ขณะจัดเรียง

โดยค่าเริ่มต้น sort จะพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของเนื้อหา บรรทัดที่ขึ้นต้นด้วยอักขระตัวพิมพ์เล็กนำหน้าบรรทัดที่ขึ้นต้นด้วยอักขระตัวเดียวกันในเวอร์ชันตัวพิมพ์ใหญ่ ตัวอย่างเช่น 'he is a boy' จะนำหน้า 'He is a boy'

หากคุณต้องการ sort เพื่อละเว้นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ให้ระบุ -NS หรือ --ignore-case ธงดังต่อไปนี้:

sort -f textfile.txt
sort --ignore-case textfile.txt

เอาท์พุท:

จัดเรียงไฟล์ตามเดือน

ใช้ -NS ธง คุณสามารถแก้ไขลำดับเนื้อหาของไฟล์ตามชื่อเดือน

sort -M textfile2.txt

เอาท์พุท:

ละเว้นช่องว่างชั้นนำ

บางครั้ง ไฟล์ที่คุณต้องการจัดเรียงอาจมีช่องว่างหรือแท็บ หากต้องการละเว้นอักขระว่างดังกล่าว ให้ใช้ -NS ธง.

sort -b fileblanks.txt

เอาท์พุท:

จัดเรียงไฟล์ตามคอลัมน์

หากคุณมีไฟล์ข้อความที่มีข้อมูลที่จัดเรียงในคอลัมน์แยกกัน คุณสามารถจัดเรียงไฟล์ตามเนื้อหาของคอลัมน์ได้ สิ่งที่คุณต้องทำคือส่งหมายเลขคอลัมน์พร้อมกับ -ถึง ธง.

พิจารณาไฟล์ข้อความที่มีข้อมูลไฟล์ที่มีคอลัมน์ต่างกัน ในการจัดเรียงไฟล์ชื่อ output.txt ตามคอลัมน์ที่แปด:

ไม่สามารถติดตั้ง mac os ให้เสร็จสิ้นได้
sort -k8 -rn output.txt

เอาท์พุท:

จัดเรียงท่อด้วยคำสั่งอื่น

คุณยังสามารถใช้ sort กับคำสั่ง Linux อื่น ๆ เพื่อแก้ไขการจัดเรียงเอาต์พุต ตัวอย่างเช่น ในการเรียงลำดับผลลัพธ์ของ คำสั่ง ls ตามขนาดของไฟล์:

ls -la | sort -k5 -rn

เอาท์พุท:

จัดเรียงไฟล์แบบสุ่ม

คุณสามารถใช้ -NS ตั้งค่าสถานะหากคุณต้องการสุ่มลำดับของบรรทัดในไฟล์ข้อความ พิจารณาไฟล์ textfile.txt :

sort -R textfile.txt

เอาท์พุท:

จัดเรียงหมายเลขเวอร์ชันในไฟล์

หากคุณมีไฟล์ข้อความที่มีข้อมูลเวอร์ชันที่เชื่อมโยงกับแพ็คเกจ คุณสามารถจัดเรียงเนื้อหาโดยใช้คำสั่ง -V หรือ --version-sort ธง.

วิธีทำบูต dvd
sort -V version.txt
sort --version-sort version.txt

เอาท์พุท:

ตรวจสอบว่ามีการจัดเรียงไฟล์หรือไม่

NS -ค แฟล็กจะช่วยคุณในการระบุไฟล์ที่จัดเรียงแล้วตามตัวเลือกที่ระบุ หากเนื้อหาของไฟล์ได้รับการจัดเรียงอย่างเหมาะสม การเรียงลำดับจะไม่แสดงผลลัพธ์ใดๆ

เพื่อตรวจสอบว่าไฟล์ textfile.txt ถูกจัดเรียง:

sort -c textfile.txt

ตอนนี้ มาจัดเรียงไฟล์และบันทึกผลลัพธ์เป็นไฟล์ใหม่ชื่อ sorted.txt . ในการออกคำสั่งต่อไปนี้:

sort -c sorted.txt

เอาท์พุท:

คุณยังสามารถระบุแฟล็กต่างๆ เพื่อตรวจสอบการจัดเรียงไฟล์ตามเกณฑ์เฉพาะ เช่น ตรวจสอบว่าไฟล์ ตัวเลข.txt ถูกเรียงลำดับจากมากไปน้อย:

sort -c -rn numbers.txt

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

sort -o sorted.txt -rn numbers.txt
sort -c -rn sorted.txt

เอาท์พุท:

จัดเรียงไฟล์และลบรายการที่ซ้ำกัน

ไฟล์ที่คุณกำลังทำงานด้วยอาจมีข้อมูลที่ซ้ำกัน แม้ว่าคุณสามารถใช้ คำสั่ง uniq หากต้องการลบข้อมูลดังกล่าวออกจากไฟล์ sort สามารถดำเนินการนี้ให้กับคุณได้ NS -ยู หรือ --มีเอกลักษณ์ ธงคือสิ่งที่คุณต้องการ

พิจารณาไฟล์ชื่อ ซ้ำ.txt :

ในการจัดเรียงไฟล์และลบข้อมูลที่ซ้ำกัน:

sort -u duplicate.txt

เอาท์พุท:

คุณจะเห็นได้ว่าเมื่อคุณใช้ -ยู แฟล็ก sort แสดงเฉพาะบรรทัดที่แตกต่างกันและจัดเรียงตามเกณฑ์ที่ระบุ

การทำงานกับไฟล์ข้อความใน Linux

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

วิธีที่ดีที่สุดในการเริ่มต้นด้วยบรรทัดคำสั่งและโดยทั่วไป Linux คือการฝึกคำสั่งพื้นฐานก่อน หลังจากครอบคลุมยูทิลิตี้พื้นฐานแล้ว การค่อยๆ ก้าวไปสู่คำสั่งที่ซับซ้อนมากขึ้นน่าจะเป็นแนวทางที่ดีที่สุด

แบ่งปัน แบ่งปัน ทวีต อีเมล แผ่นโกงการอ้างอิงคำสั่ง Linux

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

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • ลินุกซ์
  • การจัดการไฟล์
  • ลินุกซ์
  • คำสั่งลินุกซ์
เกี่ยวกับผู้เขียน Deepesh Sharma(79 บทความที่ตีพิมพ์)

Deepesh เป็นบรรณาธิการรุ่นเยาว์สำหรับ Linux ที่ MUO เขาเขียนคู่มือข้อมูลบน Linux โดยมุ่งหวังที่จะมอบประสบการณ์อันแสนสุขแก่ผู้มาใหม่ทุกคน ไม่แน่ใจเกี่ยวกับภาพยนตร์ แต่ถ้าคุณต้องการพูดคุยเกี่ยวกับเทคโนโลยี เขาเป็นคนของคุณ ในเวลาว่าง คุณจะพบว่าเขาอ่านหนังสือ ฟังเพลงแนวต่างๆ หรือเล่นกีตาร์

เพิ่มเติมจาก Deepesh Sharma

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก