我有一个以下形式的文件:
kl2,LL
kl2,nan
kl2,MORE
kl2,PRQ
kl2,JJ
abc87,PRQ
abc87,JJ
abc87,nan
abc87,MORE
abc87,LL
...
我想按第一列对其进行排序,同时保留第二列的当前顺序(对于与第一列相对应的块)。我想要的输出如下所示:
abc87,PRQ
abc87,JJ
abc87,nan
abc87,MORE
abc87,LL
kl2,LL
kl2,nan
kl2,MORE
kl2,PRQ
kl2,JJ
我尝试像这样(以及一些其他变体)进行排序,sort test.im -t, -k1
但每次尝试总是对第二列进行排序,最终输出如下所示:
abc87,JJ
abc87,LL
abc87,MORE
abc87,nan
abc87,PRQ
kl2,JJ
kl2,LL
kl2,MORE
kl2,nan
kl2,PRQ
答案1
使用 GNU 排序,添加--stable
选项。即“通过禁用最后手段比较来稳定排序”。同时更改-k1
为-k1,1
。
sort test.im -t, -k1,1 --stable