readline处理日志文本很方便
发布于 10 年前 作者 deemstone 9906 次浏览 最后一次编辑是 8 年前

###扯淡 我也快要成了 跑数据专业户

最近做的一些事儿:抓取原始数据,记到monogo里,按照不同格式导出,进一步加工……

Linux技法中,awk应该是必知必会,但实在是记不住这么怪异的参数格式……

###正文 nodejs自带的readline可以实现逐行处理,每行一个json,处理方式非常灵活

命令行里这样用:

cat logfile.txt | node main.js

main.js中这样写:

var readline = require('readline');

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: false  //这个参数很重要
});

rl.on('line', function(line){
	var obj = JSON.parse(line);
	//按需处理
	console.log(...);
});

通过“管道”把文本内容灌入nodejs的标准输入,简洁清晰,处理过程可以任意复杂!

注意 terminal: false 这个参数很重要,如果不指定false,node会认为输入来自TTY终端(命令行),这种情况下Tab(\t)符号是自动补全的意思,结果就是: 接收到的line值,所有的Tab号都消失了!

小小分享,希望能帮到小伙伴呢。

3 回复

// TODO 试一下

回到顶部