2017-03-02 66 views
1

比赛结束后如何打印5条线?想用类似如下:赛后追加线

var error="1234"; 

fs.readFileSync('errors.txt').toString().split('\n').forEach(function(line){ 
    var idx = line.match(error); 
    if (idx !== null) { 
     fs.appendFileSync(result.txt, line + "\n"); 
    } 
}); 

哪给了我唯一的匹配线。 我的目标是追加匹配和5个后续行,甚至更好的2个匹配之间的所有行。

回答

1

我会使用一个变量来追踪我们是否追加(在forEach循环之外定义),然后根据需要修改和测试变量。例如:

var appending = 0 
if (idx !== null || appending > 0) { 
    fs.appendFileSync(...) 
    appending = (appending === 0) ? 5 : appending - 1 
} 
+1

谢谢,会试一试 – plska

+1

作为一个魅力,永远不会想到我自己。谢谢。 – plska