Sort

如何對部分列上的數據進行排序?

  • May 27, 2020

我在嘗試排序的文本文件中有數據。我想將第一列位置 2 的數字上的數據排序到第一列的末尾。

例如:

Record Age Price 
A7859   15    10
B785    18    10
C696548 11    10
X7675    35    10
Y679     45    10
Z65      89    10 

假設您要按數字升序對第一列中的數字進行排序:

$ sort -k 1.2,1n file
Record Age Price
Z65      89    10
Y679     45    10
B785    18    10
X7675    35    10
A7859   15    10
C696548 11    10

-k 1.2,1n排序選項意味著“使用來自第一列的第二個字元的數據進行數字排序” 。這會按升序對第一列中的數值進行排序。用於-k 1.2,1nr以相反的順序排序。

in該,1選項的參數停止sort使用該行的其餘部分作為排序鍵。

要稍微清理一下列的對齊方式,請將結果傳遞給column -t

$ sort -k 1.2,1n file | column -t
Record   Age  Price
Z65      89   10
Y679     45   10
B785     18   10
X7675    35   10
A7859    15   10
C696548  11   10

引用自:https://unix.stackexchange.com/questions/589373