使用JavaScript替换txt文件中的一行

时间:2018-11-23 12:16:32

标签: javascript node.js fs writefile appendfile

我正在尝试使用JavaScript替换文本文件中的一行。

想法是:

var oldLine = 'This is the old line';
var newLine = 'This new line replaces the old line';

现在,我想指定一个文件,找到oldLine并将其替换为newLine并保存。

有人可以在这里帮助我吗?

2 个答案:

答案 0 :(得分:2)

这应该做

149.179

答案 1 :(得分:2)

如果您要替换与字符串匹配的整行,而不仅仅是完全匹配的字符串,则仅以Shyam Tayal的答案为基础,而是这样做:

fs.readFile(someFile', 'utf8', function(err, data) {
  let searchString = 'to replace';
  let re = new RegExp('^.*' + searchString + '.*$', 'gm');
  let formatted = data.replace(re, 'a completely different line!');

  fs.writeFile(someFile, formatted, 'utf8', function(err) {
    if (err) return console.log(err);
  });
});

'm'标志会将^和$元字符视为每行的开头和结尾,而不是整个字符串的开头或结尾。

因此上述代码将转换此txt文件:

one line
a line to replace by something
third line

对此:

one line
a completely different line!
third line