免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7068 | 回复: 8
打印 上一主题 下一主题

大文件排序问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-28 20:55 |显示全部楼层 |倒序浏览
需要用perl对比较大的文本文件(50M以上)按行排序,全部读入内存操作似乎不太合适,请教一个比较好的方法。thanks

论坛徽章:
0
2 [报告]
发表于 2005-01-29 17:52 |显示全部楼层

大文件排序问题

一个比较大的文本文件(约5,000,000行),需要把这个文件排一下序,若全部读入内存操作的话,要占用非常多的内存,怎样做才能使用较少的内存进行操作。

论坛徽章:
0
3 [报告]
发表于 2005-01-31 12:28 |显示全部楼层

大文件排序问题

感谢 thank

论坛徽章:
0
4 [报告]
发表于 2005-01-31 12:31 |显示全部楼层

大文件排序问题

原帖由 "apile" 发表:
你的問題..只有你看得懂...看不懂你在問什麼?
沒有例子..沒有說明..天曉得你所說的排序的規則是什麼?
對什麼樣的數據排序?
普通的ASCII字符文件,例如这个:
  1. ygeafy1654
  2. 682faweew faew           867
  3. reft        swf         7       fa
  4. ewfawe
  5. 987
  6. faewf a         erfawef
  7. .
  8. .
  9. .
复制代码
以ASCII编码顺序,按行排序

论坛徽章:
0
5 [报告]
发表于 2005-01-31 22:00 |显示全部楼层

大文件排序问题

感谢楼上各位的发帖。

论坛徽章:
0
6 [报告]
发表于 2005-02-01 22:07 |显示全部楼层

大文件排序问题

[quote]原帖由 "superdoctor"]不用全部读到内存中,一行一行读,读出一行后算出这一行的ascii码值和,然后对应行号到一个hash里,然后常规排序就可以了,输出的时候按排序后的hash就可以了[/quote 发表:
这是个好办法,但排出的顺序和我要的不一样。我是想按每行从左到右的字符排。
就是说,先比较第一个字符,第一个字符相同的再比较第二个字符,依此类推。

论坛徽章:
0
7 [报告]
发表于 2005-02-01 22:40 |显示全部楼层

大文件排序问题

原帖由 "北京野狼" 发表:
你只是给每行排序啊??
怪不得大家都说你的問題..只有你看得懂。
是我表达能力不好,越说越乱。
不是对每一行排序。  是对整个文件排序。例如下面这几行
  1. auyr
  2. boire
  3. aqypio
  4. aqpowe
  5. dwor
复制代码

排序后的结果
  1. aqpowe
  2. aqypio
  3. auyr
  4. boire
  5. dwor
复制代码
若按每行ASCII值的和排序,就不一定对了。

论坛徽章:
0
8 [报告]
发表于 2005-02-01 23:02 |显示全部楼层

大文件排序问题

thanks

论坛徽章:
0
9 [报告]
发表于 2005-02-03 21:30 |显示全部楼层

大文件排序问题

是个好办法,感谢 superdoctor
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP