2017-07-16 8 views
1

大きなテキストログファイル(約20MB)があります。最初の15,000行程度を削除したいと思います。 Node.jsでこれを行うにはどうすればよいですか?Node.jsでテキストファイルの最初の15k行を削除します。

+1

殻だけの問題で... 15000 OUTPUTFILENAME -n尾...あなたは、この意志をNode.jsのを使用する必要がある場合同じ出力ファイルを生成するための良い方法として知られている –

+0

なぜNode.jsをそれ?それがあなたのものであれば[そのシェルを使うことができます](https://unix.stackexchange.com/questions/37790/how-do-i-delete-the-first-n-lines-of-an-ascii -file-using-shell-commands)を実行します。 –

+0

これはサーバーのログファイルなので、サーバーは毎日最新のログのみを保持し、残りのログファイルは1つだけ残しておくと良いでしょう。 – frozen

答えて

1

readLine npmパッケージが必要です。

const readline = require('readline'); 
const fs = require('fs'); 

const rl = readline.createInterface({ 
    input: fs.createReadStream('sample.txt') 
}); 

rl.on('line', (line) => { 
    console.log(`Line from file: ${line}`); 
//YOu can delete your line Here 


}); 
0

あなたは何をやっている、あなたがそうのようにそれをつなぎ合わせ、各ラインでテキストを分割することができます知っていれば、私はNodeJSを使用して、このタスクのためにメモリにロードする20メガバイトを推奨ではなくなります

const fs = require('fs'); 
const path = '/some/path/here'; 

fs.readFile(path, (err, data) => { 
    if(err) { 
     // check for error here 
    } 
    let lines = data.split('\n'); 
    lines.splice(0, 15000); // from line 0 to 15000 
    let splited = lines.join('\n'); // joined it from the lines array 

    // Do whatever you want to do here. 

    fs.writeFile(path, splited, err => { 
     // handle error here 
    }); 
}) 

繰り返しますが、これは非常に自分の責任でそれを行う本当に効率的ではありません:)

関連する問題