加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux bash’sort’按字典顺序排列 – 零问题

发布时间:2020-12-14 02:13:45 所属栏目:Linux 来源:网络整理
导读:我在RedHat Enterprise Linux 5 x86_64和Ubuntu 9.1中看到了’sort’的奇怪之处.我正在使用bash. 首先,我认为使用字典顺序排序是正确的: [stauffer @ unix -m sortTrouble] $cat st1 1230 123 100 11 10 1 123 1230 100 [stauffer @ unix -m sortTrouble] $
我在RedHat Enterprise Linux 5 x86_64和Ubuntu 9.1中看到了’sort’的奇怪之处.我正在使用bash.

首先,我认为使用字典顺序排序是正确的:

[stauffer @ unix -m sortTrouble] $cat st1
1230
123
100
11
10
1
123
1230
100

[stauffer @ unix -m sortTrouble] $sort st1
1
10
100
100
11
123
123
1230
1230

[stauffer @ unix -m sortTrouble] $

现在这里有第二列时出现的情况(制表符分隔,即使它看起来很混乱):

[stauffer @ unix-m sortTrouble] $cat st2
1230 1
123 1
100 1
11 1
10 1
1 1
123 1
1230 1
100 1

[stauffer @ unix -m sortTrouble] $sort st2
100 1
100 1
10 1
1 1
11 1
1230 1
1230 1
123 1
123 1

请注意第1列的排序顺序现在是如何不同的. “11”在“1”之后正确放置,但“10”和“100”没有.同样的’1230′.似乎零会导致麻烦.

此行为不一致,并且在使用“join”时会导致问题,因为它需要字典排序.

在Mac OSX 10.5上,st2文件在第一列中排序为st1.

我错过了什么,或者这是一个错误?

谢谢,
迈克尔

解决方法

通过将键限制为您感兴趣的列,可以按照您希望的方式执行排序:

sort -k1,1 inputfile

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读