如何利用正则表达式提高日志分析效率

应急响应之日志分析专题 阅读详情

1. 为什么要用正则表达式?

正则表达式提供了一套灵活便利的字符串匹配规则,可以说是文本处理领域的瑞士军刀,这里的文本处理当然也包括日志分析。

比如如果要过滤模块A(关键字“moduleA”)的所有错误、失败和异常,采用普通关键字过滤是下面这个流程:

使用关键字"moduleA"过滤出所有模块A的日志 -> 拷贝出结果,再使用关键字"error"过滤出模块A的所有错误 -> 基于第一份拷贝结果,再使用关键字"fail"过滤出模块A的所有错误 -> 基于第一份拷贝结果,再使用关键字"exception"过滤出模块A的所有异常。

很明显,这个流程效率非常低下,也间接导致了开发者对于日志分析,特别是复杂问题的日志分析,产生心理抵触。

而如果采用正则表达式,则是另一番场景:

使用正则表达式"moduleA&(error|fail|exception)"一次性得出所有结果。

简单明了!

2. 如何编写正则表达式

标准正则表达式完整教程可参考这里:正则表达式 – 语法 | 菜鸟教程

对于日志分析场景,常用的如下:

单个普通关键字word
以“或”关系组合的多个关键字(注意|两边不要有空格)word1|word2|word3
模糊匹配(其中.*代表匹配任意字符0次或多次)hel.*rld

部分工具也会提供自己的扩展正则,能够进一步提高效率,比如Tilipa的日志工具,它提供了如下扩展:

“非”逻辑(“!”), 比如查找所有异常,但不包含网络异常exception&!NetworkException
“且”逻辑("&"), 比如查找模块A的错误moduleA&error

3. 如何使用正则表达式

这个要看具体的工具,工具大体分为三类,一类是命令行工具,另一类是桌面工具,最后一类是web工具。

3.1. 先来说命令行工具

常用的日志分析命令行工具且支持正则表达式的有:vim、grep,这些工具即可单独使用,也可组合使用。

vim的使用如下:

首先通过“vim file”打开对应日志文件,其中file是文件路径指向你的日志文件。打开后按下"/", 然后输入正则表达式:

按下确定键后即可执行查找,如果找到多处,可通过按"n"键或者“N”键向前向后切换。

grep的使用格式为:grep -nE “word1|word2” file,其中“word1|word2”为你的正则表达式,file为文件路径。

命令行的优势是足够灵活,如果非常熟悉命令行,可以达到事半功倍的效果;不过,缺点也很明显,主要是两点,一是快速翻页浏览不方便,二是对于新手不友好。

3.2. 再来说桌面工具

支持正则表达式的桌面工具很多,常用的有notepad++、editplus、sublime等,甚至大多数的标准IDE也支持,可以直接使用。就体验来说,notepad++比较好,下面介绍notepad++的正则基本用法。

首先通过“文件->打开”打开日志文件:

 然后通过“ctrl+f”打开搜索框,勾选“正则表达式”,输入关键字,点击“在当前文件中查找”即可:

 搜索结果如下:

 双击结果可以定位到具体的行。

3.3. 最后说下web工具

web工具最大的优势在于,几乎适用所有平台,而且轻量,即搜即用,即用即走,非常契合他的工具属性。已知的用于分析日志的web工具不多,比较有特色的一个是Tilipa日志工具(Tilipa-日志工具),它除了支持标准正则表达式以外,还提供了一些扩展能力,比如支持“且”逻辑和“非”逻辑,下面介绍它的基本用法。

首先通过“文件->打开”或者“alt+shift+o”打开日志文件:

然后通过“文件->过滤”或者“alt+shift+f”打开搜索框,勾选“扩展正则”,输入关键字:

 

确定后过滤结果如下:

 下面贴出一些扩展正则的其他用法:

 

 

 

需要补充一句,Tilipa日志工具还支持超大日志文件,有需求的同学可以试试,体验还行。

4. 常用场景与对应正则表达式汇总

单个关键字过滤word
以"或"关系过滤多个关键字word1|word2|word3
以“且”关系过滤多个关键字(用于过滤一个或多个模块的所有问题)(module1|module2)&(error|fail|exception)
去除干扰项word1&!discard

使用kettle进行正则表达式组件日志分析 使用Kettle(Pentaho Data Integration)进行日志分析是一种常见的数据处理任务,特别是当你需要从大量的日志文件中提取和分析数据时。Kettle是一个强大的ETL工具,能够处理各种数据分析任务,包括日志分析。根据你的具体需求和日志的格式,你可以创建适合的转换来提取、转换和分析日志数据。 阅读详情

相关推荐

提高日志分析效率的几个小手段

提高日志分析效率的几个小手段,涉及标记、多词匹配、非逻辑、分页、常用正则等。

fix_bugs的专栏 1271

Java正则表达式解析复杂跨行日志

使用正则解析复杂跨行日志

weixin_42202992的博客 764

C#正则表达式日志分析魔法:5个咒语,让日志从“天书”变“明信片”!

看着像“乱码森林”?正则表达式就是你的“翻译魔法杖”——记住:正则不是“万能钥匙”,但它是日志分析的“瑞士军刀”——🔥关注墨瑾轩,带你探索编程的奥秘!🔥超萌技术攻略,轻松晋级编程高手🚀。🔥技术宝库已备好,就等你来挖掘🚀。🔥订阅墨瑾轩,智趣学习不孤单🚀。:如何从日志中快速提取时间戳?🔥即刻启航,编程之旅更有趣🚀。:如何快速定位所有错误日志?:如何从日志中提取用户ID?:如何计算API的响应时间?:如何按日志类型自动分类?(假设用户ID是数字):多模式匹配 + 分组。(或者更精准的模式)

java专栏 391

学习正则表达式之nginx日志分析

正则表达式基本学习,简单的分析字符串

hjzyhm的博客 1631

「自然语言驱动生产力」32. 从零实战:自然语言生成正则表达式(附可运行代码+真实场景案例)

摘要:正则表达式是数据处理、文本匹配的核心工具,但语法晦涩、调试困难——新手写一个“匹配手机号”的正则可能要查3次文档,改5次格式;即使是熟手,面对“密码强度验证”“日志错误提取”等复杂需求,也需反复调试。本文基于Python、OpenAI API(快速上手)与regex库(高性能正则匹配),提供一套可落地的“自然语言→正则表达式”解决方案:从3分钟环境搭建,到基础正则生成、复杂模式构建,再到数据清洗、日志分析的实战案例,每个功能均附完整代码与实测结果。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 899

使用Java正则表达式分析处理日志

NULL 博文链接:https://lfl2011.iteye.com/blog/2031013

ide 日志 乱码_IDE日志分析方法pt。 1个

ide 日志 乱码 介绍 我认为大多数软件工程师都了解日志的重要性。 它们已成为软件开发的一部分。 如果无法解决问题,我们尝试在日志中查找原因。 对于一些简单的情况,当错误阻止应用程序打开窗口时,这可能就足够了。 您可以在日志中找到问题,然后在Google上查找并应用解决方案。 但是,如果要修复包含许多组件的大型产品中的错误,则分析日志成为主要问题。 通常,维护工程师(正在修复不开发新功能的错...

最佳 Java 编程 290

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

日志解析效率提升80%,Python在游戏数据分析中的惊人应用

提升游戏日志处理效率80%的实战方法,揭秘Python在游戏日志分析Python中的高效应用。适用于玩家行为追踪、异常检测等场景,利用Pandas与正则表达式实现快速解析,大幅缩短处理时间,值得收藏。

ByteChat的博客 693

避坑指南:企业微信IP白名单设置失败的5种常见原因及解决方案

本文深入解析企业微信API调用中IP白名单设置失败的5种常见原因,包括动态公网IP变更、代理服务器导致的IP失真等,并提供针对性的解决方案。特别针对可信IP配置问题,详细介绍了诊断方法和Java代码示例,帮助企业开发者快速解决访问限制问题,确保API调用安全稳定。

weixin_29280657的博客 619

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 198

edit8实战教程:用终端编辑器处理日常任务

作为开发者,我们每天有超过40%的时间在与终端打交道。无论是修改配置文件、处理日志还是编写脚本,一个高效的终端编辑器能显著提升工作流。然而,传统工具要么过于简陋(如nano),要么学习曲线陡峭(如vim/emacs)。**edit8**——这款致敬经典MS-DOS Editor的现代终端编辑器,以VS Code般的操作逻辑和极简设计,重新定义了终端编辑体验。 读完本文,你将掌握: - 3分钟上手...

gitblog_00990的博客 1033

【异常】OpenAI提示内容有误 Invalid prompt: your prompt was flagged as potentially violating our usage policy.

用户需优先调整提示内容,确保符合OpenAI的使用政策。若问题持续,建议结合请求ID和具体代码示例联系官方支持。同时,可参考腾讯云、Microsoft Q&A等平台提供的错误处理实践(如重试机制、日志记录)优化代码健壮性。

奶爸的编程之路,也就一周冷个三天 2081

evil-snipe:快速且精准的文本跳转工具

evil-snipe:快速且精准的文本跳转工具 evil-snipe 是一款专为 evil-mode 设计的文本跳转工具,它模拟了 vim-seek 和 vim-sneak 的功能,提供了更加高效和精确的文本跳转方式。 项目介绍 evil-snipe 通过使用两个字符的组合快速定位文本中的特定位置,相较于 evil-mode 内置的 f/F/t/T 跳转功能,它具有更直观的视觉反馈和更高的准确性。...

gitblog_01080的博客 588

4.DJI-PSDK云台x-port控制:

使用PSDK 的“云台控制”功能,开发者需要先设计负载设备的云台并开发出控制云台的程序,将云台的控制函数注册到PSDK 指定的接口后,用户通过使用DJI Pilot、基于MSDK 开发的移动端App 及遥控器即可控制基于PSDK 开发的具有云台功能的负载设备,同时获得负载设备的相关信息,如姿态等。云台的姿态如 图2.云台姿态 所示,根据用户的控制指令,云台能够调整姿态;云台的关节如 图1.云台关节 所示,云台关节是云台上带动负载设备转动的结构件:云台电机,云台关节角即云台电机转动的角度。

哒宰的博客 857

【25届数字IC秋招总结】面试经验10——紫光同芯

25届数字ic面试记录——紫光同芯

lalala0635的博客 862

[原创]根据logcat日志定位程序具体崩溃、错误、闪退原因的关键词

今天崩溃测试报告出来了崩溃了很多,查看日志的时候发现基本上是这些关键词,但是崩溃的手机那么多,刚开始我一个一个切换搜索,蛋疼,后面总结一下就省事多了,最后又发现还是麻烦,就换成点击历史搜索切换还是不省事就直接用正则,哈哈。偷懒是我的天赋FATAL EXCEPTIONShutting down VMActivity pause timeout forApplication is not respon...

情随事迁个人博客 580

基于 Matlab 的亚像素边缘检测算法:Zernike 矩

Zernike 矩是一种基于正交多项式的特征提取算法,可以用于分析和描述数字图像中的形状和结构。Zernike 矩可以描述图像在不同方向、不同比例和旋转角度下的变化情况,因此具有很好的不变性和鲁棒性。在基于 Zernike 矩的亚像素边缘检测算法中,我们首先需要将原始图像转换为极坐标系下的图像。然后,对每个像素点,计算其在不同方向下的一阶导数和二阶导数,并将其转换为极坐标系下的形式。其中,“n”表示次数,“m”表示阶数,“rho”和“theta”分别表示极坐标系下的半径和角度。% 转换为极坐标系下的形式。

2301_79325339的博客 983

linux下使用cat grep快速查找内容

查看日志快速定位ERROR cat log.txt | grep 'ERROR' -A 5 意思是,在log.txt文件中,查找ERROR字符,并显示ERROR所在行的之后5行 cat log.txt | grep 'ERROR' -B5之前5行 cat log.txt | grep 'ERROR' -C5 前后5行 cat log.txt | grep -v 'ERROR'...

潇兮水寒的博客 9471

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

3秒定位代码隐患:IntelliJ IDEA社区版正则引擎深度解析

正则表达式(Regular Expression)是开发者日常工作中的工具,面对复杂模式匹配时,你是否遇到过性能瓶颈或语法困惑?IntelliJ IDEA Community Edition内置的正则引擎通过模块化设计和智能分析,让代码搜索效率提升300%。本文将从引擎架构、实战技巧到性能优化,全面解锁这款隐藏在IDE中的强大工具。 ## 引擎架构:从语法解析到模式匹配 IntelliJ的正则...

gitblog_00562的博客 688

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python学习之在多个文件中依次查找多个关键词

这篇博文记录如何在多个目标文档中一次性地查找多个关键词。

JJJJJJJerry的博客 2594

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

掌握文本搜索的利器:深入解析 Linux grep 命令的强大功能

grep 是一个功能强大的命令行工具,用于在文件中搜索指定的模式(字符串或正则表达式)。本文详细介绍了 grep 的基本用法和常用选项,包括忽略大小写、显示行号、递归搜索、仅显示匹配的文件名、显示不匹配的行、匹配整个单词以及显示上下文行。此外,还介绍了如何使用基本和扩展的正则表达式进行复杂模式匹配。通过灵活运用 grep,用户可以高效地进行文本搜索和处理,是日志分析、数据筛选等任务中的利器。

落雨碎江南 1372

Vim常用匹配、查找、替换命令总结

以前都是从头开始找,最近处理log文件很多。 在vim 中输入 :1?XXXX1的意思是文件的第一行?的意思是反向查找XXXX就是你要找的关键字 更新:Linux 从末尾开始查找日志 tac catalina.out | grep -B 2 ‘关键字’ 转载于:https://www.cnblogs.com/jpfss...

WGH100817的博客 377

Shell脚本编程完全指南:从入门到实战应用(终结篇)

⚡ ​​高效自动化​​:减少重复性人工操作🔧 ​​系统管理​​:深度集成Linux系统工具🚨 ​​实时监控​​:快速响应系统异常📦 ​​轻量部署​​:无需额外环境依赖。

2503_93012393的博客 535

微服务可靠性测试_微服务测试的关键——通过ELK查询日志

为什么需要ELK一般我们在工作中查询日志搜索问题时,通常需要直接在日志文件中进行grep、awk 操作就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。随着微服务的广泛应用,无论系统日志,还是业务日志都更进一步了。运维或者开发们发现要从这么大规模的系统中(几百个上千个服务)产生的千亿规模日志去排查问题,简直是难于上青...

weixin_42118770的博客 175
上一篇: 终于有正则表达式支持且关系(‘&‘)了
下一篇: 日志过滤中常用的正则表达式
fix_bugs
博客等级 码龄12年 89粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值