Board logo

标题: [文本处理] [已解决]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
看你前贴 把两个命令结合下哦
  1. @echo off
  2. set "str=1 5 7 8 10 112 121 333 "
  3. sed -ni "%str: =p;%%str: =d;%w $" a.txt
  4. move a.txt c.txt
  5. ren $ a.txt
  6. 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