查找字符串并删除行-Node.JS

查找字符串并删除行-Node.JS,node.js,string,file,search,fs,Node.js,String,File,Search,Fs,如何在node.js中读取文件、搜索字符串和删除行?我试过了 var fs = require('fs') fs.readFile('shuffle.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('user1')) return

如何在node.js中读取文件、搜索字符串和删除行?我试过了

var fs = require('fs')
fs.readFile('shuffle.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('user1'))
return i;
}()

delete data_array[lastIndex];

});

假设我们有一个文本文件,shuffle.txt包含以下内容

john
doe
user1 
some keyword
last word
现在我们阅读shuffle.txt文件,然后搜索“user1”关键字。如果任何一行包含“user1”,那么我们将删除该行

var fs = require('fs')
fs.readFile('shuffle.txt', {encoding: 'utf-8'}, function(err, data) {
    if (err) throw error;

    let dataArray = data.split('\n'); // convert file data in an array
    const searchKeyword = 'user1'; // we are looking for a line, contains, key word 'user1' in the file
    let lastIndex = -1; // let say, we have not found the keyword

    for (let index=0; index<dataArray.length; index++) {
        if (dataArray[index].includes(searchKeyword)) { // check if a line contains the 'user1' keyword
            lastIndex = index; // found a line includes a 'user1' keyword
            break; 
        }
    }

    dataArray.splice(lastIndex, 1); // remove the keyword 'user1' from the data Array

    // UPDATE FILE WITH NEW DATA
    // IN CASE YOU WANT TO UPDATE THE CONTENT IN YOUR FILE
    // THIS WILL REMOVE THE LINE CONTAINS 'user1' IN YOUR shuffle.txt FILE
    const updatedData = dataArray.join('\n');
    fs.writeFile('shuffle.txt', updatedData, (err) => {
        if (err) throw err;
        console.log ('Successfully updated the file data');
    });

});

有关更多信息,请检查。

许多问题。“数据数组”在哪里初始化?此外,文件中的数据仅在回调函数中可用。lastIndex是一个函数,而不是一个值,因此删除数据数组[lastIndex]可能不是您想要的。将问题分解并一次测试一个问题。删除行后,您是否需要更新文件的内容?是的,非常感谢您的回答。还有什么javascript解决方案吗?我用javascript写了答案。谢谢你的帮助!如果不是太多,你能帮我吗:(顺便说一句,我只是指客户端javascript,因为这是客户端节点.js?)
john
doe
some keyword
last word