var fs = require('fs'); var readline = require('readline'); var filename = 'pagecounts-20141029-230000'; var minviews = 500; var prefix = 'en '; var rd = readline.createInterface({ input : fs.createReadStream(filename), output : process.stdout, terminal : false }); var start = +new Date(); var count = []; rd.on('line', function(line) { if (line.indexOf(prefix) !== 0) { return; } var parts = line.split(" "); var lang = parts[0]; var article = parts[1]; var views = parts[2]; if (views > minviews) { count.push([article, parseInt(views)]); } }); rd.on('close', function() { count.sort(function(a, b) { return a[1] > b[1] ? -1 : 1; }); var elapsed = (+new Date() - start) / 1000; console.log("Query took " + elapsed.toFixed(2) + " seconds"); count.slice(0, 10).forEach(function(item) { console.log(item[0] + " (" + item[1] + ")"); }); });