注意:对此有各种类似的问题,但它们不适用于nodejs。请不要将此问题标记为重复,除非它与标记为nodejs的问题重复。
注意:this question没有回答我的问题,它解释了如何从文件中删除x行,而不是从文件中保留x行。该问题没有解释如何获取文件的行长度并使用它来修剪某些行。我回答了这个问题,因为我找到了答案。那个答案应该清楚。
在我的应用程序中,日志文件在正常使用期间会向其写入许多行日志。为了节省磁盘空间,我想删除日志文件超过设定数量的第一行。
例如,如果最大行长度为5(例如,不是我想要的那样),那么:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
会转换为:
Line 2
Line 3
Line 4
Line 5
Line 6
并且
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
会转换为:
Line 3
Line 4
Line 5
Line 6
Line 7
注意:这个问题被标记为nodejs,所以我想在nodejs中找到一个没有任何库/依赖项的答案(原生fs很好)
答案 0 :(得分:0)
我在suggested duplicate找到了部分答案,但我想说明如何根据我的情况进行调整:
var fs = require('fs')
fs.readFile(filename, 'utf8', function(err, data){
if (err){
throw err;
}
var linesCount = data.split("\n").length;
var wantedLines = data.split("\n").slice(~7+1);//keep 7 lines
fs.writeFile(filename, wantedLines);
});