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

1亿行的a.txt,大概888M,
tail -n 1000 a.txt > b.txt耗时0.13秒

TOP


如果不下载第三方,纯P刀法中的最快组合也许就是如下两行代码,其中 more +n 的参数 n=0 是指文件第1行》
   for /f %%i in ('find /v /c "" ^< "源文件" ') do (set/a "n=%%i-1000")
   more +%n% "源文件">"源文件.new"
哪位知其更快者请赐教。
如果下载GNU系列工具,当属 tail 直接了当,sed/awk 显得拖泥带水了。

TOP

以前在其它地方使用more,好像还不如for循环快。

TOP

本帖最后由 aloha20200628 于 2023-8-8 12:27 编辑

1楼代码巨慢的瓶颈应该是其获取总行数的方法,for/f 循环中无须用type...findstr...

TOP

本帖最后由 77七 于 2023-8-8 13:55 编辑
  1. 1千万行文本,234 M
  2. 取倒数100行
  3. 13:46:31.12
  4. 执行 find /v 计算行数
  5. 13:46:36.52
  6. 执行 for + skip
  7. 13:46:37.76
  8. 执行 more
  9. 13:46:48.28
  10. 请按任意键继续. . .
  11. 取倒数10000行
  12. 13:46:59.83
  13. 执行 find /v 计算行数
  14. 13:47:05.19
  15. 执行 for + skip
  16. 13:47:07.21
  17. 执行 more
  18. 13:47:17.80
  19. 请按任意键继续. . .
  20. 取倒数100000行
  21. 13:47:33.00
  22. 执行 find /v 计算行数
  23. 13:47:38.41
  24. 执行 for + skip
  25. 13:47:45.14
  26. 执行 more
复制代码

more 确实比较慢,第三段执行超10分钟,手动结束了。测试了两遍,第二遍,加了暂停休息时间,未在测试第三段的more
bat小白,请多指教!谢谢!

TOP

选择more是为防for吞不下较长文本行,现有777实测对比,把用c/c++打造的more“原形毕露”了...

TOP

这,对于我来说,是新东西,从头学学

TOP

返回列表