Nodejs:以字符串形式读取大文件并使用掩码在其中查找某些字符串

Nodejs: Reading in a large file as a string and looking for certain strings within using a mask

我希望能够将大文件(大于 1GB)作为字符串读入 node.js(我不太关心效率),一旦完成,我希望能够使用掩码搜索文件,例如 FILE_XXX_XXXX_XXXXXXXX
X 是任何字符并将结果存储在数组中。目前我的方法是简单地使用
读入文件 fs.readFileSync(srcPath, 'utf8');
然而,这会导致错误
错误:无法创建长度超过 0x3fffffe7 个字符的字符串
我环顾四周并知道 "piping" 但不确定如何实现它(或者它是否适合我想做的事情)

你要找的是fs.createReadStream:

const fs = require('fs');
const readStream = fs.createReadStream('myfile.txt');

readStream
  .on('data', function(chunk) {
    // check if chunk.toString() contains what you're looking for here
  })
  .on('end', function () {
    console.log('done');
  });

您可以使用正则表达式来匹配您的掩码,请参阅 https://regexr.com/