我想逐行读取文件(我已经弄清楚了),然后解析这些行并替换某些行(基于某些条件),然后仅将那些新行写回到文件中。
按行读取已完成:
import fs from 'fs';
import path from 'path';
import readLine from 'readline';
const lines = [];
const rl = readLine.createInterface({
input: fs.createReadStream(pathToJsFile),
crlfDelay: Infinity
});
rl.on('line', (line) => {
lines.push(line);
});
已经完成了lines数组中某些行的操纵:
const lineChangeNumbers = [];
lines.forEach((v,i) => {
if(condition(v){
//change v in some way - set new string on v
lineChangeNumbers.push(i);
}
})
现在,我被困在仅选择性地回写此文件某些行的部分。 一种方法是,通过将lines数组与\ n连接起来,构造一个新字符串,然后写回整个文件。 但是会回写-让git注意到这些行号上的那些更改吗?
有一个fs函数可以使我仅将某一行写回到文件中而不替换整个文件吗?