2017-03-02 65 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