我有很大的文本文件,范围在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