2017-10-12 70 views
0

我需要基于两列对表进行排序,一列是数字,另一列是字符串。我需要按降序排列数字,而我想按字母顺序排列字符串。使用'-r'选项进行排序确实可以用于数值计算,但它也适用于刺探。我想知道如何仅对一列应用反向选项,而不是对另一列应用反向选项。unix排序在多列

CMD:排序-r -k5 -K3 -K1

数据: 输入

il ||  2 |  3 || 
we ||  2 |  2 || 
dt ||  0 |  2 || 
di ||  0 |  2 || 
cs || 16 |  1 || 
fd ||  5 |  1 || 
df || 14 |  0 || 
np ||  9 |  0 || 
dt ||  9 |  0 || 
ta ||  0 |  0 || 
rt ||  0 |  0 || 
ps ||  0 |  0 || 

预计

il ||  2 |  3 || 
we ||  2 |  2 || 
di ||  0 |  2 || 
dt ||  0 |  2 || 
cs || 16 |  1 || 
fd ||  5 |  1 || 
df || 14 |  0 || 
dt ||  9 |  0 || 
np ||  9 |  0 || 
ps ||  0 |  0 || 
rt ||  0 |  0 || 
ta ||  0 |  0 || 
+0

查看-k选项的标志。任何全局订购选项也可以为单个密钥指定。 –

回答

1

这对我的作品

$ sort -rk5 -k3 -k1b input 

输出:

il ||  2 |  3 || 
we ||  2 |  2 || 
di ||  0 |  2 || 
dt ||  0 |  2 || 
cs || 16 |  1 || 
fd ||  5 |  1 || 
df || 14 |  0 || 
dt ||  9 |  0 || 
np ||  9 |  0 || 
ps ||  0 |  0 || 
rt ||  0 |  0 || 
ta ||  0 |  0 ||