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

関連する問題