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

[文本处理] 【已解决】批处理如何最快的方式统计文本有多少行?

本帖最后由 elec 于 2014-7-14 20:40 编辑

例如
1.txt有500行。统计出结果后 set /a n=500
2.txt有2300行。统计出结果后 set /a n=2300

这样的。

  1. @echo off
  2. for /f %%a in ('type a.txt ^| find /c /v ""') do (
  3.     set "RowNum=%%a"
  4. )
  5. echo,%RowNum%
  6. pause
复制代码

TOP

回复 2# DAIC


    计算13W行的文本大概用了12.47秒。。还有更快的方法吗?

TOP

下载一个 grep.exe 试试
  1. grep -Fc "" 1.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

不过我想将计算出的结果赋值给一个变量,能做到吗?
用管道?还是写入文件再读取?

有没有解决办法。。谢谢了!!

TOP

  1. @echo off
  2. for /f %%i in ('grep -Fc "" 1.txt') do set lines=%%i
  3. echo %lines%
  4. pause
复制代码

TOP

回复 6# storm8


    这个耗时几秒?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 elec 于 2014-7-15 00:03 编辑

回复 7# Batcher


    第三方的工具速度不用说。不过用wc -l a.txt会更快一些
    测试a.txt  100W行  167M

    wc命令:0.11s
    grep命令:0.67s
    批处理:6.95s

TOP

回复 7# Batcher


    这个代码就是用4楼的方法,加点处理解决5楼的问题。起赋值作用。时间应该跟4楼差不多

grep --help
-c, --count               print only a count of matching lines per FILE

TOP

回复 9# storm8

    这个也行!!
  1. grep -c ".*" a.txt
复制代码

TOP

回复 10# elec


    这种写法比4楼那种快多少?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表