首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用grep和sed正则表达式从日志中提取信息

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

作者头像
十毛
发布2022-01-12 17:26:41
8750
发布2022-01-12 17:26:41
举报

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

信息提取

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

{"@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\
grep -F "fail to request profit sharing" all.log | grep "ProfitSharingCrontabManager:235" > log.dat
sed 's/.*shopId=\([0-9]*\).*orderNo=\(MBORDER[0-9]*\).*/\1 \2/g' log.dat
  • 2'. 使用扩展正则表达式(选项-E)
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 信息提取
  • 正则表达式不同之处
    • sed默认正则表达式
      • sed扩展正则表达式
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档