อนุญาตให้ฉันชี้แจง:
สมมติว่าฉันมีคำหลักบางคำที่มีความถี่ในการใช้งาน:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
สิ่งที่ฉันต้องการคือการจัดเรียงข้อมูลตามความถี่ในการเรียงลำดับจากมากไปน้อยและหากมีค่าเท่ากันควรใช้คอลัมน์ที่สองตามลำดับจากน้อยไปหามาก
sort -n -r foo.txt
ทำส่วนแรก แต่คอลัมน์ที่สองก็เป็นเช่นreversed
กัน:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
ฉันจะบรรลุผลลัพธ์ต่อไปนี้ได้อย่างไร
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
ฉันคิดว่าฉันต้องใช้การ-k
โต้แย้ง แต่ฉันไม่สามารถหาวิธี!
ฉันต้องการที่จะรู้ว่าวิธีนี้สามารถทำได้โดยใช้เพียงคำสั่งของsort
bash
อย่างไรก็ตามหากไม่สามารถทำสิ่งนี้ได้โดยเฉพาะsort
คำสั่งอื่น ๆ จะสามารถใช้งานร่วมกับ Bourne shell ได้
-g
ตัวเลือกGNU-sort (ตัวเลขทั่วไป) แทน-n
การเปรียบเทียบเชิงตัวเลขนั้นปลอดภัยกว่า: ทำงานได้อย่างถูกต้องสำหรับทั้งทศนิยมและจำนวนเต็ม