2010-11-20 69 views
2

我想用gnu-coreutils排序命令根据从最小到最大的第一个值对表格排序。用coreutil的排序排序

我的表看起来是这样的:

file.txt的

100,0.8,0.323, ... some more data 
2,0.323,0,323, ... 
4, ... 
53, ... 
. 
. 
121, ... 

我曾尝试做如下:

sort -n -k 1 file.txt 

,但我得到的东西像...

10,0,10,10 
100,9,1,10 
101,9,2,11 
102,9,3,12 
103,9,4,13 
104,9,5,14 
105,9,6,15 
106,9,7,16 
107,9,8,17 
108,9,9,18 
21,1,10,11 
32,2,10,12 
43,3,10,13 
54,4,10,14 

我想要逻辑数字顺序。

泰德。

+1

22,33,44对我来说很好 - 你希望那些出现在什么顺序? – 2010-11-20 01:34:30

+0

啊我忘了提及..事情是有这样的数字,如: 21,22,23,24 ...在33之前,它没有显示出来......他们可能是在排序文件的其他地方。 – Flethuseo 2010-11-20 03:59:12

+0

我也想问一下,我的默认排序命令来自/ usr/bin/sort,但那种排序没有我喜欢使用的随机排序。我想使用我的coreutils安装中的排序,但我不想将所有的核心utils添加到我的路径中。我试过这个..但它没有工作: alias sort ='/ sw/lib/coreutils/bin/sort' 任何想法? – Flethuseo 2010-11-20 04:05:10

回答

1

sort正确调用可能看起来像

$ sort -n -t , -k 1,1 file.txt 

说明:

  • -n排序数字
  • -t ,逗号字段分隔
  • -k 1,1排序第一场
  • file.txt输入文件

调用上文给出程序给出

10,0,10,10
21,1,10,11
32,2,10,12
43 ,3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9, 9,18

当按字段排序时,使用--debug选项非常方便,只是为了确保排序按预期工作。