readline处理日志文本很方便
发布于 9个月前 作者 deemstone 424 次浏览

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

最近做的一些事儿:抓取原始数据,记到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号都消失了!

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

1 回复
回到顶部