首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fs.readdir、fs.readfile和regex

fs.readdir、fs.readfile和regex
EN

Stack Overflow用户
提问于 2017-01-03 21:53:26
回答 1查看 5.1K关注 0票数 1

这是一个Node应用程序,运行快递服务器。我有一个文件夹里面有文本文件。我需要能够进入文件夹中的每一个文件,并提取包含一个单词“保存”的行。

我被困在这一步了。

代码语言:javascript
复制
app.get('/logJson', function (req, res) {
  const logsFolder = 'C:/logs/';
  fs.readdir(logsFolder, (err, files) => {
    if (err) {
      res.send("[empty]");
      return;
    }
    files.forEach(function(filename){
      var logFiles = fs.readFileSync (logsFolder + filename, 'ascii').toString().split("\n");
      console.log(logFiles + "\n");
    })
  })
})

我不知道我应该把它写在什么地方:

代码语言:javascript
复制
var log = (logFiles.split(/.*SAVE.*/g)||['no result found'])[0];

如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-03 22:01:51

如果您只想打印出包含单词SAVE的所有行,您可以这样做。

备注:我没有运行此代码。

代码语言:javascript
复制
app.get('/logJson', function (req, res) {
  const logsFolder = 'C:/logs/';
  fs.readdir(logsFolder, (err, files) => {
    if (err) {
      res.send("[empty]");
      return;
    }
    var lines = [];
    files.forEach(function(filename) {
      var logFileLines = fs.readFileSync (logsFolder + filename, 'ascii').toString().split("\n");

      // go through the list of logFileLines
      logFileLines.forEach(function(logFileLine) {

        // if the current line matches SAVE, it will be stored in the variable lines
        if(logFileLine.match(/SAVE/)) {
          lines.push(logFileLine);
        }
      })
    })

    // the variable lines is printed to the console
    console.log(lines);
  })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41452988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档