【问题标题】:Get line of file content that contain a string获取包含字符串的文件内容行
【发布时间】:2022-01-09 14:22:37
【问题描述】:

我想在一个包含 discord js 节点中的字符串的文件中获取行内容。

类似这样的:

If (file contains("string")){
console.log(line content)
}

like,如果文件中的某一行包含该字符串。它会将包含字符串的行发送到控制台。

【问题讨论】:

  • 到目前为止你尝试过什么?显示您尝试过的代码并解释什么不起作用。
  • 所以基本上我想在文件夹中找到最新的文件,所以我决定在一个文本文件中列出所有文件名,因为文件名中间包含日期我可以找到最新的文件通过查找包含日期的行。
  • 酷,向我们展示您尝试过的代码,解释您希望它做什么以及它实际做什么或问题出在哪里,我们可以帮助您解决它。不要指望任何人为您编写代码,这不是 stackoverflow 的用途。
  • 到目前为止我已经尝试过了: const testFolder = './logs/Chatlogs';常量 fs = 要求('fs'); fs.readdirSync(testFolder).forEach(file => { console.log(file); }); var date = "2021"+"12"+"03" if(file.includes(date)){ 获取行内容? }
  • 将其添加到您的问题中,以便于阅读。

标签: javascript node.js discord discord.js fs


【解决方案1】:

因此,您只需按新行拆分文件内容并遍历行以找到日期,如下所示:

const testFolder = './logs/Chatlogs';
const fs = require('fs');
const path = require('path');

fs.readdirSync(testFolder).forEach(file => {
    console.log(file);

    // read the file content
    var content = fs.readFileSync(path.join(testFolder, file));

    var date = '20211203';
    var lines = content.split('\n');

    lines.forEach(l => {
        if(l.indexOf(date) > -1)
            console.log('Found it:', l);
    });
});

【讨论】:

  • 我测试了它,但它不起作用,我得到错误:ENOENT:没有这样的文件或目录,打开'abyssal luckyers_20210911_151259_2118715187.txt'
  • @somekidplayingjs 我通过将fs.readFileSync(file); 更改为fs.readFileSync(path.join(testFolder, file)); 来修复代码,但这真的很简单,您应该能够自己解决。
  • 不,我刚开始学习 discord.js,这对我来说很难。因为我还是个孩子
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多