标题: [文本处理] [已解决]BAT怎样处理百万行的超大型文本? [打印本页]
作者: claudia 时间: 2013-4-27 14:46 标题: [已解决]BAT怎样处理百万行的超大型文本?
这两个图能看得懂吗??
意思就是说从A中取指定的几行 存到文件C中, 同时把这几行从A中删除。
具体取出那几行需要临时定义,或者可以把位置放到一个文件中
例如:
1
2
6
8
9
注(文件A非常大 至少几十MB 最少是100万行 而且取出的行数也很多。 希望速度能快点)
自己用VB试了下很慢 走头无路才想到批处理的。。 请大侠帮忙
作者: yoyobye 时间: 2013-4-27 14:52
到底要提出哪几行来?
作者: claudia 时间: 2013-4-27 14:54
回复 2# yoyobye
要取出那几行未必的。 只能自己临时定义。 每次都不一样。
或者我可以把要取出的行位置写到一个文件中 换行符隔开
作者: terse 时间: 2013-4-27 14:56
外部命令 SED
看你前贴 把两个命令结合下哦- @echo off
- set "str=1 5 7 8 10 112 121 333 "
- sed -ni "%str: =p;%%str: =d;%w $" a.txt
- move a.txt c.txt
- ren $ a.txt
- PAUSE
复制代码
作者: claudia 时间: 2013-4-27 15:00
回复 4# terse
这个一次性能操作多少行呢?? 我一般要操作很多行。 至少几万行
作者: Demon 时间: 2013-4-27 15:26
原来批处理比VB还快,学习了
作者: yoyobye 时间: 2013-4-27 16:06
for /f "tokens=1,* delims=:" %%i in ('findstr /n "." 1.txt') do (
set n=%%i
set str=%%j
for /f "delims=" %%a in (t.txt) do (
if {!n!}=={%%a} echo !str!>>2.txt
)
)
没有测试,不懂大文件的效率问题,求教
作者: claudia 时间: 2013-4-27 16:54
回复 6# Demon
VB想尽了办法了。。 几百万的数据 非常慢 读写速度不够快。 批处理先试试把
作者: BAT-VBS 时间: 2013-4-27 17:34
回复 8# claudia
4楼的代码效率如何?
作者: BAT-VBS 时间: 2013-4-27 17:35
这两个图能看得懂吗??
意思就是说从A中取指定的几行 存到文件C中, 同时把这几行从A中删除。
请把图里面的数据用文本的形式直接贴出来,以便测试代码。
作者: BAT-VBS 时间: 2013-4-27 17:39
自己用VB试了下很慢 走头无路才想到批处理的。。 请大侠帮忙
大部分情况下,VBS的效率比BAT高。
可能是你的代码写的不好。
可以去VBS版块把你的代码贴出来,让大神给你优化优化。
作者: sz1121 时间: 2013-5-4 02:16
pfile.exe -f:c:\in.txt -d:1-118 -out.txt
-f 目标文件
-d 指定行范围
-o 保存到文件
-参数后需要":"号连接
如:-f:c:\1234567.txt -d:1-500 -o:c:\abcdef
执行之前会备份目标文件为?????.bak
http://url.cn/HxmqND
作者: techon 时间: 2013-5-5 20:33
超大量数据还是用数据库方便快捷
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |