我试图先按第三列以反向(降序)数字排序3列,然后按字母顺序按第一列排序(以打破关系)。条目以逗号分隔(,
)。
例如,我的数据集是:
y,5,50
x,10,50
z,4,100
预期产出:
z,4,100
x,10,50
y,5,50
然而,我得到的输出是:
z,4,100
y,5,50
x,10,50
我正在使用:
sort -t, -k3,3 -n -r -k1,1 filename
不确定为什么这不起作用。
答案 0 :(得分:2)
我建议将-k3,3 -n -r
替换为-k3,3nr
:
sort -t, -k3,3nr -k1,1 file
输出:
z,4,100 x,10,50 y,5,50
答案 1 :(得分:1)
您建议的原因不起作用的原因是您已在全局范围内应用了标记-n
,-r
,因此字母排序也会-r
翻转。要在每个键的基础上应用标志,请使用:
sort -t, -k3,3nr -k1,1 filename
这给出了预期的输出:
z,4,100
x,10,50
y,5,50