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

我有大型文本文件,范围在30MB和之间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

以上是 Node.js:计算文件中的行数 的全部内容, 来源链接: utcz.com/qa/405056.html

回到顶部