Заменить строку в текстовом файле с помощью JavaScript
Я пытаюсь просто заменить строку в текстовом файле, используя JavaScript.
Идея заключается в следующем:
var oldLine = 'This is the old line';
var newLine = 'This new line replaces the old line';
Теперь я хочу указать файл, найти oldLine
и заменить его на newLine
и сохрани это.
Кто-нибудь, кто может помочь мне здесь?
1 ответ
Решение
Это должно сделать это
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);
});
});
Просто основываясь на ответе Шьяма Таяла, если вы хотите заменить всю строку, соответствующую вашей строке, а не просто точно совпадающую строку, сделайте это вместо:
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' будет обрабатывать мета-символы ^ и $ как начало и конец каждой строки, а не начало или конец всей строки.
Таким образом, приведенный выше код преобразует этот текстовый файл:
one line
a line to replace by something
third line
в это:
one line
a completely different line!
third line