Node.js:计算文件中的行数

2023-12-19

我有很大的文本文件,其范围在30MB and 10GB。如何使用以下命令计算文件中的行数Node.js?

我有这些限制:

  • 不需要将整个文件写入内存
  • 执行该任务不需要子进程

不使用wc的解决方案:

var i;
var count = 0;
require('fs').createReadStream(process.argv[2])
  .on('data', function(chunk) {
    for (i=0; i < chunk.length; ++i)
      if (chunk[i] == 10) count++;
  })
  .on('end', function() {
    console.log(count);
  });

它比较慢,但没有你想象的那么慢 - 140M+ 文件需要 0.6 秒,包括 Node.js 加载和启动时间

>time node countlines.js video.mp4 
619643

real    0m0.614s
user    0m0.489s
sys 0m0.132s

>time wc -l video.mp4 
619643 video.mp4
real    0m0.133s
user    0m0.108s
sys 0m0.024s

>wc -c video.mp4
144681406  video.mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js:计算文件中的行数 的相关文章

随机推荐