如何对部分列的数据进行排序?

如何对部分列的数据进行排序?

我正在尝试对文本文件中的数据进行排序。我想将第一列位置 2 处的数字数据排序到第一列末尾。

例如:

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

答案1

假设您要对第一列中的数字按数字升序排序:

$ 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逆序排序。

,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

相关内容