首页 > 解决方案 > Node js - 从文本文件中删除字符串

问题描述

如何从文本文件中删除字符串?

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 地址行。

标签: javascriptnode.js

解决方案


您的代码似乎过于复杂。最大的问题是它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.". 如果您在不同的行上有项目并想要删除任何匹配的项目,请在您的问题中澄清这一点。

以上内容改编自这个答案。


推荐阅读