You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js如何捕获日志中特定字符串所在行对应的全部下一行内容

Node.js 提取指定字符串所在行的下一行内容实现方案

使用Node.js内置的readline模块实现,无需安装第三方依赖,支持大文件逐行读取,不会占用过高内存。

实现代码

const fs = require('fs');
const readline = require('readline');

// 配置项,可根据实际需求修改
const LOG_FILE_PATH = './test.log'; // 你的日志文件路径
const TARGET_STRING = 'Compile Error'; // 要匹配的目标字符串

const result = [];
// 标记位:标记下一行是否需要捕获
let needCaptureNextLine = false;

const rl = readline.createInterface({
  input: fs.createReadStream(LOG_FILE_PATH),
  crlfDelay: Infinity // 适配所有操作系统的换行符
});

rl.on('line', (currentLine) => {
  // 上一行匹配到目标,当前行直接存入结果
  if (needCaptureNextLine) {
    result.push(currentLine.trim());
    needCaptureNextLine = false;
    return;
  }
  // 当前行匹配到目标,标记下一行要捕获
  if (currentLine.trim() === TARGET_STRING) {
    needCaptureNextLine = true;
  }
});

rl.on('close', () => {
  console.log('捕获到的所有内容:');
  console.log(result);
  // 结果写入本地文件
  fs.writeFileSync('./output.txt', result.join('\n'));
  console.log('结果已保存到同目录下的output.txt');
});

使用步骤

  • 替换代码中LOG_FILE_PATH为你的实际日志文件路径
  • 可根据需求调整匹配规则:
    • 精确匹配整行:保留currentLine.trim() === TARGET_STRING即可
    • 模糊匹配(行内包含目标字符串就算匹配成功):修改为currentLine.includes(TARGET_STRING)
  • 运行脚本:node 你的脚本文件名.js

运行输出示例

针对你给出的示例日志,运行后得到的结果为:

./aaarty/bbb/cfvcc/dddhjklpi
./asshtyd/wrfber/ghn/fffh/gh/ikjmlk
./cc/wwwasftbb/kkk/tgfh/pioqascfg/qqq

内容的提问来源于stack exchange,提问作者lugman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:36:04