根據列排序

根據列排序
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實作中省略它。

相關內容