【问题标题】:sorting with coreutil's sort使用 coreutil 的排序进行排序
【发布时间】:2010-11-20 01:30:45
【问题描述】:

我正在尝试使用 gnu-coreutils 排序命令根据第一个值从小到大对表进行排序。

我的桌子看起来像这样:

文件.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

我想要逻辑数字顺序。

泰德。

【问题讨论】:

  • 22,33,44 对我来说看起来不错 - 您希望它们以什么顺序出现?
  • 啊,我忘了提.. 问题是有一些数字,例如:21,22,23,24... 在 33 之前,它没有显示这些...它们可能是排序文件中的其他位置。
  • 我也想问一下,我的默认排序命令来自/usr/bin/sort,但是那个排序没有我喜欢使用的随机排序。我想使用我的 coreutils 安装中的排序,但我不想将所有核心 utils 添加到我的路径中。我试过这个..但它不起作用: alias sort='/sw/lib/coreutils/bin/sort' 有什么想法吗?

标签: sorting gnu-coreutils


【解决方案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 选项非常方便,只是为了确保排序按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多