![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 10:48 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [出题]在不包含重复行的大文件中快速提取指定数量的行 |
| 可打印版本 964 / 10 |
| 第1楼 HAT | 发表于 2008-11-22 02:29 |
| 版主 发帖 5,017 积分 9,023 | |
|
[出题]在不包含重复行的大文件中快速提取指定数量的行 假设文本文件a.txt包含5万行互不重复的内容(不考虑特殊字符)
请用纯批处理以最快的速度提取前49990行 输出到b.txt 为了便于比较各种方案所需要的时间,我们以下面的代码产生的文本为评判标准(但实际上行与行之间的内容没有任何规律可循): |
|
| 第2楼 huahua0919 | 发表于 2008-11-22 05:15 |
| 银牌会员 发帖 780 积分 1,608 | |
|
一觉醒来,先凑个数(基本都会的)
|
|
| 第3楼 HAT | 发表于 2008-11-22 07:15 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 2楼 这个方法确实比较容易想到
不过还有更快的方法:) |
|
| 第4楼 kissbill | 发表于 2008-11-22 09:50 |
| 初级用户 发帖 35 积分 61 | |
|
5万行啊,不知道比沙发的快不
[ Last edited by kissbill on 2008-11-22 at 09:52 ] |
|
| 第5楼 tireless | 发表于 2008-11-22 11:05 |
| 银牌会员 发帖 1,122 积分 2,025 | |
执行速度C:\>timeit -s 2#if.bat (p.s.,纯批处理允许内部工具吗?) |
|
| 第6楼 Saber | 发表于 2008-11-22 11:08 |
| 初级用户 发帖 14 积分 26 | |
|
用自己写的程序的话算“作弊”了吧……
|
|
| 第7楼 kissbill | 发表于 2008-11-22 11:30 |
| 初级用户 发帖 35 积分 61 | |
|
timeit 自己的工具?
|
|
| 第8楼 HAT | 发表于 2008-11-22 12:51 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 5楼 tireless 兄的代码为何不贴出来?
|
|
| 第9楼 tireless | 发表于 2008-11-22 12:53 |
| 银牌会员 发帖 1,122 积分 2,025 | |
Originally posted by HAT at 2008-11-22 12:51 PM: 我也只想到2楼和4楼的方法。5 楼贴出的数据是2楼和4楼的代码执行速度。 |
|
| 第10楼 Saber | 发表于 2008-11-22 14:45 |
| 初级用户 发帖 14 积分 26 | |
|
[ Last edited by Saber on 2008-11-22 at 16:12 ] |
|
| 第11楼 netbenton | 发表于 2009-02-25 23:37 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
不知道这样速度怎样 @echo off
(for /f "delims=:" %%a in ('findstr /n .* a.txt') do if %%a leq 49990 (echo.%%b) else (goto :quit))>b.txt :quit [ Last edited by netbenton on 2009-2-27 at 07:22 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |