我有大型文本文件,范围在30MB和之间10GB。如何使用来计算文件中的行数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