Javascript 使用Node.js删除文本文件的前15k行

Javascript 使用Node.js删除文本文件的前15k行,javascript,node.js,file,text,io,Javascript,Node.js,File,Text,Io,我有一个大的文本日志文件(大约20MB)。我想删除前15000行左右。如何在Node.js中执行此操作?您必须要求npm软件包 const readline = require('readline'); const fs = require('fs'); const rl = readline.createInterface({ input: fs.createReadStream('sample.txt') }); rl.on('line', (line) => { cons

我有一个大的文本日志文件(大约20MB)。我想删除前15000行左右。如何在Node.js中执行此操作?

您必须要求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


});

我不建议使用NodeJS将20MB加载到内存中,但如果您知道自己在做什么,则可以按每行分割文本,然后按如下方式拼接:

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
    });
})

再说一次,这不是真正有效的,所以请您自己承担风险:)

与shell一起发布。。。tail-n+15000outputfilename。。。如果必须使用Node.js,那么这将是一种生成相同OutputFile的已知好方法,为什么要使用Node.js?如果是一次性的,你可以。这是服务器的日志文件,因此我认为服务器最好每天只保留最新的日志,并清除其余的日志,而只有一个日志文件。假设你只需要文件的最后10000行。。。tail-10000outputfile是的,但是为什么要使用Node.js呢?shell有一套可靠而成熟的工具来处理文本文件,并且使用cron可以轻松地实现自动化。使用它们,而不是Node.js。如何,这个解释丢失了,删除一行是使用
line=”“