readline处理日志文本很方便
###扯淡 我也快要成了 跑数据专业户
最近做的一些事儿:抓取原始数据,记到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 回复
感谢分享
mark
// TODO 试一下