中国DOS联盟论坛

中国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:
echo这个效率低得无法接受

用more+findstr能好些

我理解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只能忽略前面的行,并不能忽略后面的行啊,不管怎么样,愿闻其详,期待中。。。


我举个例子用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:
拙劣的 sed 用法,望高手指点。(假设有十万行)
发现太多的行,若是用more会出错,不知什么原因?
第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