标题: [文本处理] 【已解决】批处理如何最快的方式统计文本有多少行? [打印本页]
作者: elec 时间: 2014-7-14 14:13 标题: 【已解决】批处理如何最快的方式统计文本有多少行?
本帖最后由 elec 于 2014-7-14 20:40 编辑
例如
1.txt有500行。统计出结果后 set /a n=500
2.txt有2300行。统计出结果后 set /a n=2300
这样的。
作者: DAIC 时间: 2014-7-14 14:20
- @echo off
- for /f %%a in ('type a.txt ^| find /c /v ""') do (
- set "RowNum=%%a"
- )
- echo,%RowNum%
- pause
复制代码
作者: elec 时间: 2014-7-14 14:40
回复 2# DAIC
计算13W行的文本大概用了12.47秒。。还有更快的方法吗?
作者: Batcher 时间: 2014-7-14 14:58
下载一个 grep.exe 试试复制代码
作者: elec 时间: 2014-7-14 17:44
不过我想将计算出的结果赋值给一个变量,能做到吗?
用管道?还是写入文件再读取?
有没有解决办法。。谢谢了!!
作者: storm8 时间: 2014-7-14 18:28
- @echo off
- for /f %%i in ('grep -Fc "" 1.txt') do set lines=%%i
- echo %lines%
- pause
复制代码
作者: Batcher 时间: 2014-7-14 20:41
回复 6# storm8
这个耗时几秒?
作者: elec 时间: 2014-7-14 23:50
本帖最后由 elec 于 2014-7-15 00:03 编辑
回复 7# Batcher
第三方的工具速度不用说。不过用wc -l a.txt会更快一些
测试a.txt 100W行 167M
wc命令:0.11s
grep命令:0.67s
批处理:6.95s
作者: storm8 时间: 2014-7-15 16:29
回复 7# Batcher
这个代码就是用4楼的方法,加点处理解决5楼的问题。起赋值作用。时间应该跟4楼差不多
grep --help
-c, --count print only a count of matching lines per FILE
作者: elec 时间: 2014-7-15 19:58
回复 9# storm8
这个也行!!复制代码
作者: Batcher 时间: 2014-7-15 21:49
回复 10# elec
这种写法比4楼那种快多少?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |