免费注册 查看新帖 |

Chinaunix

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

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

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

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-01-29 12:44 |只看该作者

大文件排序问题

看不懂你的問題.....麻煩寫清楚一點....

论坛徽章:
0
3 [报告]
发表于 2005-01-29 15:40 |只看该作者

大文件排序问题

我猜,我猜, 我猜猜猜.... hehe

你 while (<FiH> 就是一行行的读. 要排序的话, 你可以把决定排序的那部分从每行提出来放到一个 hash 里, 相对应行数. 然后你在对 hash 里的那部分排序即可. 看你具体问题可以具体提高.

论坛徽章:
0
4 [报告]
发表于 2005-01-29 17:52 |只看该作者

大文件排序问题

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

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-01-30 22:22 |只看该作者

大文件排序问题

你的問題..只有你看得懂...看不懂你在問什麼?
沒有例子..沒有說明..天曉得你所說的排序的規則是什麼?
對什麼樣的數據排序?

论坛徽章:
0
6 [报告]
发表于 2005-01-31 09:46 |只看该作者

大文件排序问题

全部读入内存中是不行的,你可以将数据输入数据库,在库里输出,这样比较快;或者你将文件分割为几部分,分别排序,然后再进行汇总排序。
上面只是一个思路。

论坛徽章:
0
7 [报告]
发表于 2005-01-31 12:28 |只看该作者

大文件排序问题

感谢 thank

论坛徽章:
0
8 [报告]
发表于 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编码顺序,按行排序

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2005-01-31 16:36 |只看该作者

大文件排序问题

可以考慮..按字頭分成不同文件...在一個個文件去排序...
會比較省ram...
真的要快..得用數據庫...

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2005-01-31 17:35 |只看该作者

大文件排序问题

[quote]原帖由 "redspider"]ASCII编码顺序,按行排序[/quote 发表:


一次读到内存是最好的办法,内存不够就不该干大文件排序这样的事情

只做一次这样的操作,用数据库只会更慢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP