节点js-从文本文件中删除字符串

时间:2018-06-25 23:51:08

标签: javascript 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地址行。

1 个答案:

答案 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答案。