首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Linux的"sort -u“比Excel快这么多

问为什么Linux的"sort -u“比Excel快这么多
EN

Stack Overflow用户
提问于 2017-05-18 13:57:57
回答 1查看 90关注 0票数 0

我试着从一个大约有300万条记录的Excel文件中找到唯一的记录。(排序和筛选>高级>仅唯一)。它花了4个多小时,而且还在运行。我试着与它交互,但它崩溃了。所以我在Linux中对-u进行了排序,甚至不到一分钟的时间。为什么它比Excel的排序快这么多?PS,安装了MSExcel的机器有12 GB的内存,Windows10。可怜的Linux只有1到2 GB。

EN

回答 1

Stack Overflow用户

发布于 2017-05-18 14:46:55

据我所知,Linux排序版本是一个经典的UNIX排序,它是GNU coreutils-6.9.90的一部分。

这是标准的外部R-Way merge的经典示例,为了对大小为N字节的数据进行排序,主内存大小为M,因此它一次创建N/M次运行并合并R次,通过数据的次数是/log(N/M)次。

关于Excel我不确定,但我猜他们使用的是其他人使用的相同的字符集,如果区分大小写,将字符转换为字符集编号并按字符集编号的数字顺序排序,如果不区分大小写,则向大写数字添加一个类似32的常量,使其等于小写数字。

如果要创建特殊排序顺序,

代码语言:javascript
复制
   choose Tools>> Options >> Custom Lists 

并创建自己的排序顺序。然后,当您准备好对数据进行排序时,请选择“排序”对话框中的“选项”按钮,并选择一个自定义列表作为备用排序关键字顺序。

根据我在linux排序阶段的理解,它会将整个数据分成足够放入主内存的小块,然后读取、排序并写出到一个临时文件中,最后将所有排序的子文件合并到一个更大的文件中。这可能是linux排序快于excel排序的原因。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44039656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档