我有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

是否可以选择保留原始顺序或其他我可以使用的命令?

最佳答案

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

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

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

关于sorting - 如何按列对文本文件进行排序并保持原始顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20612533/

10-11 03:42