Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用grep和sed正则表达式从日志中提取信息

使用grep和sed正则表达式从日志中提取信息

作者头像
十毛
发布于 2022-01-12 09:26:41
发布于 2022-01-12 09:26:41
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

有时候在做简易日志分析的时候,需要从特定的日志记录中提取特定的信息

信息提取

假如有如下错误日志,我们需要提取shopId和orderNo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"@message":"[2021-08-04 00:10:00.756][scheduling-1][ERROR][ProfitSharingCrontabManager:235][maibao-transaction][b0dab5d4eaa9e063]: fail to request profit sharing: order[ProfitSharingFinishOrder(id=15668, buyerId=11862667, shopId=406924, subMchid=1547072391, orderNo=MBORDER0080011608448, transactionId=4340800671202019714263, outOrderNo=MBPROFIN00700118042, wxOrderId=null, closeReason=null, finishAmount=null, status=NEW, deleted=0, finishTime=null, createTime=2021-07-28T16:41:28, updateTime=2021-07-28T16:41:28)]\ncom.tencent.maibao.transaction.WxException: 对同笔订单分账频率过高\n\
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep -F "fail to request profit sharing" all.log | grep "ProfitSharingCrontabManager:235" > log.dat
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 's/.*shopId=\([0-9]*\).*orderNo=\(MBORDER[0-9]*\).*/\1 \2/g' log.dat
  • 2'. 使用扩展正则表达式(选项-E)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -E 's/.*shopId=([0-9]+).*orderNo=(MBORDER[0-9]+).*/\1 \2/g' log.dat

正则表达式不同之处

sed默认正则表达式

  • 不支持\d
  • 不支持+(表示1个或多个)
  • 捕获组的圆括号,需要转义
  • 替换组,使用反斜杠\1,其他地方大部分都是美元符号$1

sed扩展正则表达式

  • 不支持\d
  • 替换组,使用反斜杠\1,其他地方大部分都是美元符号$1
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021.08.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Grep(Regex)中的正则表达式
grep是Linux中用于文本处理的最有用和功能最强大的命令之一。 grep在一个或多个输入文件中搜索与正则表达式匹配的行,并将每条匹配的行写入标准输出。
知忆
2021/06/02
2.9K0
Python正则表达式
如何把一个字符串的特征或规则告诉给计算机,让计算机知道你要描述的东西。被称为正则。
用户2700375
2022/06/09
6120
Python正则表达式
sed & awk 第二版学习(二)—— 正则表达式语法
在计算机术语中,表达式是某些需要被计算的东西。一个表达式描述一种结果。正则表达式描述了模式或特殊的字符序列,尽管没有必要指定一个精确的序列。例如:
用户1148526
2024/09/05
1170
sed & awk 第二版学习(二)—— 正则表达式语法
Linux系统开发: linux下正则表达式
现在学的是Linux中的正则表达式,最常应用正则表达式的命令是linux三剑客:grep(egrep),sed,awk。
DS小龙哥
2022/01/27
1.4K0
Linux系统开发: linux下正则表达式
正则表达式
正则表达式,又称规则表达式,模式匹配。(英语:Regular Expression,在代码中常简写为regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
生信喵实验柴
2022/10/25
7010
正则表达式
正则表达式
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
7850
刨根究底正则表达式之一——正则表达式简介
虽然本系列文章开篇会简单介绍正则表达式的一些基础知识,但主要限于本系列文章所想强调的要点,因此本系列文章并不适合用于入门。
笨笨阿林
2019/01/18
1.2K0
Python正则表达式
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 None
忆想不到的晖
2021/04/04
8450
Python正则表达式
(27)正则表达式
①正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
生信real
2020/09/01
8650
正则表达式-1.字符匹配
对于点号,星号等在正则表达式中有特殊含义的字符,需要在前面加一个反斜杠(\)来进行转移。 “\“本身就是”\“。
悠扬前奏
2019/05/28
1.2K0
正则表达式的详解带你认识正则表达式的意义
​ 我们都知道协议通常通过添加固定的字符、报头、特定的数字等来定义数据的结构和格式。将正确的信息提取出来是十分重要的,而正则表达式可以用来描述和匹配这些固定的结构,从而提取出所需的信息。并且正则表达式还可以处理大量复杂的字符串。这篇文章将会带你彻底了解正则表达式。
薄荷冰
2024/06/09
7750
Shell 正则表达式
正则表达式是用于描述字符排列和匹配模式的一种语法规则。 它主要用于字符串的模式分割、匹配、查找以及替换操作。
小小工匠
2021/08/16
1.2K0
Java中使用正则表达式
Java语言中的正则表达式匹配功能主要是通过java.util.regex.Matcher类和以下这些方法实现的。
码客说
2023/01/13
9150
Java中使用正则表达式
Python Re 正则表达式 数据匹配提取 基本使用
例如:以上就是今天要讲的内容,本文仅仅简单介绍了re的使用,而re提供了大量能使我们快速便捷地处理数据的函数和方法,后续有关于re的常用代码会在这篇博客中持续更新。 转 python内置正则表达式(re)模块官方文档简要中文版:https://www.cnblogs.com/rosesmall/archive/2012/12/26/2833681.html
EXI-小洲
2022/12/13
1.4K0
java正则表达式解析「建议收藏」
学习正则表达式,我觉得还是要循循渐进,由易到难,一点点深入……(本人也在学习中这里提供个人理解思路,以及一些大神们的独到讲解。。。。。。)
全栈程序员站长
2022/09/09
1.2K0
java正则表达式解析「建议收藏」
awk-grep-sed简单使用总结(正则表达式的应用)
正则表达式: 匹配一组字符: #[ns]a.\.xls  //[]用于限定字符;“.”用于匹配任意字符; \.用于转义"." 匹配到s/na*.xls  [nN]     匹配大小写;[0-9]     匹配0-9数字;[a-zA-Z0-9]   匹配任意字符数字 注意:"-"(连字符)是一个特殊的元字符,作为元字符只能用在[]中间         用^元字符进行取非操作,但是必须用在[]之间 #[ns]a[^0-9]\.xls 匹配n/sa*.xls    *表示任意字符 使用元字符: 元字符自己使用必
BGBiao
2018/02/26
2.3K0
正则表达式
在文本处理、数据清洗、格式验证等众多场景中,正则表达式为我们提供了一种便捷而高效的方法。本文详细讲解了正则表达式基础匹配以及元字符匹配的基本用法和应用场景。
Heaven645
2024/08/18
1610
正则表达式
Python正则表达式
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。下面,我来介绍一下python中的正则表达式是怎么使用的
王大力测试进阶之路
2019/10/25
9600
Python正则表达式
Linux||正则表达式及grep命令
正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。
小汪Waud
2023/02/03
1.6K0
Linux||正则表达式及grep命令
正则表达式(二)
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
胡齐
2020/02/14
7090
相关推荐
Grep(Regex)中的正则表达式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验