[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]BAT怎样处理百万行的超大型文本?

这两个图能看得懂吗??   

意思就是说从A中取指定的几行   存到文件C中, 同时把这几行从A中删除。


具体取出那几行需要临时定义,或者可以把位置放到一个文件中

例如:
1
2
6
8
9

注(文件A非常大 至少几十MB  最少是100万行    而且取出的行数也很多。 希望速度能快点)

自己用VB试了下很慢  走头无路才想到批处理的。。   请大侠帮忙
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

超大量数据还是用数据库方便快捷
解释执行的脚本语言与编译语言还是有很大差别的。。。

TOP

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

TOP

自己用VB试了下很慢  走头无路才想到批处理的。。   请大侠帮忙

大部分情况下,VBS的效率比BAT高。
可能是你的代码写的不好。
可以去VBS版块把你的代码贴出来,让大神给你优化优化。

TOP

这两个图能看得懂吗??   
意思就是说从A中取指定的几行   存到文件C中, 同时把这几行从A中删除。

请把图里面的数据用文本的形式直接贴出来,以便测试代码。

TOP

回复 8# claudia


    4楼的代码效率如何?

TOP

回复 6# Demon


    VB想尽了办法了。。   几百万的数据  非常慢      读写速度不够快。   批处理先试试把

TOP

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
    )
)
没有测试,不懂大文件的效率问题,求教

TOP

原来批处理比VB还快,学习了

TOP

回复 4# terse


    这个一次性能操作多少行呢??      我一般要操作很多行。   至少几万行

TOP

外部命令 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
复制代码
1

评分人数

TOP

回复 2# yoyobye


    要取出那几行未必的。    只能自己临时定义。    每次都不一样。  

或者我可以把要取出的行位置写到一个文件中  换行符隔开

TOP

到底要提出哪几行来?

TOP

返回列表