shell 脚本提取不包含某个字段的日志请求体

背 景

由于项目没有接入Kibana日志查看工具,在docker里查看并筛选特定的请求体是非常困难的,比如我做性能测试 no gui测试的时候,发现有些请求报错了,报错信息提示字段缺失,我就要筛选这个请求是怎样的,就要要筛选哪些请求体没有包含xx字段。这个时候就异常麻烦了

方案

起初用了awk去做解析,但awk去判断含有某个字段还好用一点,如果判断没有包含某个字段,写起来非常麻烦,最后选择最简单的IFS去做字符切割。

实 现

先筛选出日志,因为日志多达上百万行数据。

more xxx.log | grep -A 4 “请求体:{” >>test.log

脚本如下:

#!/bin/bash

string=`cat test.log`

#对IFS变量 进行替换处理
OLD_IFS="$IFS"
IFS="--"

for var in $string
do
    strB="tskCntn"
    strC="itemId"
    strD="19:"
    if [[ $var =~ $strB ]]
    then
      echo "">222.txt
    else
      if [[ $var =~ $strD ]]
      then
         var1=$var
      fi
      if [[ $var =~ $strC ]]
      then
        echo $var1
        echo $var
      fi
    fi

done

IFS="$OLD_IFS"


最后打印出来的都是没有包含字段的请求体数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值