如何按列对文本文件进行排序并保留原始顺序

时间:2013-12-16 13:49:16

标签: sorting

我有一个包含15列的非常大的数据文件。我需要根据特定列对所有行进行排序,比如第11列。我在Linux中使用此命令:

sort -k11 -d myfile.txt > sortedfile

问题是sort命令不保留文件的原始顺序。敌人,如果我有这样的事情:

1 mh3

3 ygb

4 mh3

I need to have:

1 mh3

4 mh3

3 ygb

但是,我可能会得到:

4 mh3

1 mh3

3 ygb

是否有保留原始订单或我可以使用的任何其他命令的选项?

1 个答案:

答案 0 :(得分:6)

选项-s是您所需要的(相当于--stable):

sort -k11,11 -d -s myfile.txt > sortedfile

选项-k适用于一系列字段,因此您应该像我上面那样添加,11,否则排序将使用从第11列到第11行的键(默认)