
10 awhdk;
14 hjoeow;
2 kdkld;
4 jkjdksl
如何根據第一列(即計數)對其進行排序?
我想得到這個輸出:
14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld
我需要根據第一列的排序來列印兩列。
答案1
您可以用來-k
指定排序鍵在輸入行中的開始和結束位置。
您可以使用該-n
選項或新增n
至排序鍵規格來觸發數字排序,而不是預設的詞法排序。並-r
反轉排序。
在這裡,對於數字排序,您不需要將排序鍵限制為排序命令。如果你這樣做:
sort -rn file
它將整行視為一個數字。14 hjoeow;
例如,線將被理解為數字14
。
你可以這樣做:
sort -bk 1,1rn file
僅對第一個欄位進行排序,但這沒有什麼區別。
連接線的命令paste
帶有-s
選項。您可以使用 指定分隔符號-d
。\0
是分隔符號的特殊值,表示不加任何中間條件地加入。因此,要獲得預期的輸出:
sort -rn file | paste -sd '\0' -
POSIXpaste
要求傳遞檔案名稱。-
又是一個特殊值,意味著標準輸入。您可以在某些paste
實作中省略它。