2012-06-06 19 views
3

给定的文件的内容:排序上非连续的字段:等效POSIX为“排序0 -1 2”

1234 1 15ECS3 
1234 2 MS21042 
1234 1 16AS338 
42 

我需要按列1,则3进行排序,跳过2,如下所示:

1234 1 15ECS3 
1234 1 16AS338 
1234 2 MS21042 
42 

我能得到这个具有以下过时的命令工作:

sort +0 -1 +2 file 

但对我的生活,我不能让它与-km.n -km.n工作等价的。我已经试过:对

sort -b -k1 -k3 file 

我的底线,以及约20变化,抛出一切,似乎有关,但大多是多余的(绝望的标志)的开关。

我错过了什么?上述工作代码的posix版本是什么?

在此先感谢。

斯科特

回答

3

我相信这是你在找什么:

sort -k1,1 -k3,3 
+0

该诀窍。那么这是否意味着“在字段1上开始排序并在字段1上结束”(-k1,1),“在字段3上开始排序并在字段3上结束”(-k3,3)?无论如何,非常感谢你的帮助;即使用Google搜索了大量的例子,我似乎也无法理解这个手册页。这帮了一大笔钱。 – amorphousone