按第一列对逗号分隔的文件进行排序,同时保留一些顺序

按第一列对逗号分隔的文件进行排序,同时保留一些顺序

我有一个以下形式的文件:

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

相关内容