อนุญาตให้ฉันชี้แจง:
สมมติว่าฉันมีคำหลักบางคำที่มีความถี่ในการใช้งาน:
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การเปรียบเทียบเชิงตัวเลขนั้นปลอดภัยกว่า: ทำงานได้อย่างถูกต้องสำหรับทั้งทศนิยมและจำนวนเต็ม