![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 02:23 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]分割TXT文档:每6万行生成一个新的TXT |
| 可打印版本 2,163 / 17 |
| 第1楼 youaoyi | 发表于 2008-05-30 17:30 |
| 初级用户 发帖 67 积分 154 | |
|
[求助]分割TXT文档:每6万行生成一个新的TXT 如何将一个很大的TXT文档,
每6万行自动生成一个新的TXT ? 严重求助,谢谢各位. ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"严重求助: 分割TXT文档"不利于论坛搜索 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-11-9 at 17:49 ] |
|
| 第2楼 youaoyi | 发表于 2008-05-30 17:38 |
| 初级用户 发帖 67 积分 154 | |
|
也就是说: 一个名为“原始.TXT”的文档中有几十万行,
自动将其划分为每个文档仅含6万行数据的 “原始_1.TXT”、“原始_2.TXT”、“原始_3.TXT”... 等 |
|
| 第3楼 andison625 | 发表于 2008-05-30 17:47 |
| 初级用户 发帖 36 积分 70 | |
|
六万行,那是多大的文本了?
能不能用几个for,一个检测正在写入的文件的大小,另一个检行数,还有一个检生成的文件名? 本人新来...只学了一点C++,所以只有一个思路,不知道行不行.....见谅 |
|
| 第4楼 bat-zw | 发表于 2008-05-30 17:48 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
ps:几十万行,真不知道能不能处理完。 [ Last edited by zw19750516 on 2008-5-30 at 05:49 PM ] |
|
| 第5楼 plp626 | 发表于 2008-05-30 17:53 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
echo这个效率低得无法接受
用more+findstr能好些 |
|
| 第6楼 youaoyi | 发表于 2008-05-30 18:01 |
| 初级用户 发帖 67 积分 154 | |
|
效率不是问题,
多等等就行 可以用,非常感谢4楼的老兄! |
|
| 第7楼 bat-zw | 发表于 2008-05-30 18:05 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by plp626 at 2008-5-30 17:53: 我理解more只能忽略前面的行,并不能忽略后面的行啊,不管怎么样,愿闻其详,期待中。。。 |
|
| 第8楼 26933062 | 发表于 2008-05-30 18:08 |
| 银牌会员 发帖 879 积分 2,268 | |
|
这个问题用 sed 就应该是最佳选择了。
|
|
| 第9楼 plp626 | 发表于 2008-05-30 21:39 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by zw19750516 at 2008-5-30 06:05 PM: 我举个例子用more+findstr获得一个文本的前10行 这个速度要比现今流行的for+set/a+if+echo 快多了,至于获得中间的行原理差不多,还是在tmp上用findstr 但不通用,大家注意,后面出现与前面一样的行就过滤了 [ Last edited by plp626 on 2008-5-30 at 09:49 PM ] |
|
| 第10楼 26933062 | 发表于 2008-05-30 22:11 |
| 银牌会员 发帖 879 积分 2,268 | |
|
拙劣的 sed 用法,望高手指点。(假设有五十万行)
[ Last edited by 26933062 on 2008-5-30 at 10:22 PM ] |
|
| 第11楼 plp626 | 发表于 2008-05-30 22:27 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by 26933062 at 2008-5-30 10:11 PM: |
|
| 第12楼 lxmxn | 发表于 2008-05-30 22:49 |
| 版主 发帖 4,938 积分 11,386 | |
|
gawk应该不是很慢……
|
|
| 第13楼 26933062 | 发表于 2008-05-30 23:01 |
| 银牌会员 发帖 879 积分 2,268 | |
|
sed -n "1,70000p" a.txt|more>b.txt
运行以上命令,发现到了65535行时就出现 (-- More -- ) 字样,且无法继续向b.txt写入内容。 在 65535 以前写入很快,大概只要几秒,sed 处理文本的速度是可观的。 |
|
| 第14楼 terse | 发表于 2008-05-31 02:30 |
| 银牌会员 发帖 946 积分 2,404 | |
|
我发现sed 这样的参数 貌似效率要高点 是真的吗?前面取行要慢点
|
|
| 第15楼 26933062 | 发表于 2008-05-31 02:51 |
| 银牌会员 发帖 879 积分 2,268 | |
|
sed -n "1,3!d" a.txt|more
我运行此命令,没有任何显示?不知何故? |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |