如何从文本文件中删除字符串?
fs.readFile('./banlist.txt', function read(err, data) {
if (err) {
throw err;
}
lastIndex = function(){
for (var i = data_array.length - 1; i > -1; i--)
if (data_array[i].match(ip))
return i;
}()
delete data_array[lastIndex];
});
但是控制台会给我消息:未定义data_array。 我要删除IP地址行。
答案 0 :(得分:1)
您的代码似乎过于复杂。最大的问题是data_array
不存在,并且data
不是数组。最简单的解决方案(尽管是同步的,如果要处理大文件,可能会很慢)如下:
var data = fs.readFileSync('banlist.txt', 'utf-8');
var ip = "STRING_TO_REMOVE";
var newValue = data.replace(new RegEx(ip), '');
fs.writeFileSync('banlist.txt', newValue, 'utf-8');
这将从文件中的任何位置删除第一次出现的指定字符串。这意味着,如果您要搜索“ foo”,并且文件包含"This is foobar."
,它将最终以"This is bar."
结尾。如果您在单独的行上有项目,并且想要删除任何匹配的项目,请在您的问题中加以说明。
以上内容改编自this答案。