多列上的unix排序

时间:2017-10-12 03:58:47

标签: sorting unix

我需要根据两列对表进行排序,一列是数字,另一列是字符串。我需要按降序排列数字,而我想按字母顺序排列字符串。使用' -r' sort的选项适用于数字,但它也适用于sting。我想知道如何只为一列而不是另一列应用反向选项。

Cmd:sort -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 ||

1 个答案:

答案 0 :(得分: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 ||