Replace a line in txt file using JavaScript
Asked Answered
S

2

5

I am trying to simply replace a line in a text file using JavaScript.

The idea is:

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

Now i want to specify a file, find the oldLine and replace it with the newLine and save it.

Anyone who can help me here?

Sesquipedalian answered 23/11, 2018 at 12:16 Comment(1)
Possible duplicate of Replace a string in a file with nodejsAixenprovence
E
5

This should do it

var fs = require('fs')
fs.readFile(someFile, 'utf8', function (err,data) {

  var formatted = data.replace(/This is the old line/g, 'This new line replaces the old line');

 fs.writeFile(someFile, formatted, 'utf8', function (err) {
    if (err) return console.log(err);
 });
});
Epigene answered 23/11, 2018 at 12:19 Comment(0)
C
18

Just building on Shyam Tayal's answer, if you want to replace an entire line matching your string, and not just an exact matching string do the following instead:

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

The 'm' flag will treat the ^ and $ meta characters as the beginning and end of each line, not the beginning or end of the whole string.

So the above code would transform this txt file:

one line
a line to replace by something
third line

into this:

one line
a completely different line!
third line
Cockeye answered 14/5, 2019 at 15:38 Comment(0)
E
5

This should do it

var fs = require('fs')
fs.readFile(someFile, 'utf8', function (err,data) {

  var formatted = data.replace(/This is the old line/g, 'This new line replaces the old line');

 fs.writeFile(someFile, formatted, 'utf8', function (err) {
    if (err) return console.log(err);
 });
});
Epigene answered 23/11, 2018 at 12:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.