shell 拆分字符串

shell 拆分字符串

在这里插入图片描述

最近有新人一直来询问如何解析业务中的日志数据,这里就简单记录一下。希望能给予你们帮助!

业务中,尤其是链路长的场景,会把日志数据以某种格式进行拼接、聚合到 Log、Trace 中,Metrics 倒是很少采取这种手段。当研发人员对日志进行处理时,需要明晰其内部结构,就要去拆分数据,化大为小,恢复原数据。那么如何进行拆分呢?可能是有些同学的困惑。

shell

有同学看了上面的情景,可能觉得不是什么问题。在各种开发语言中都包含了 Json 及 以某字符拆分、拼接的 内置或包 函数,十分方便,编写代码,跑一下原数据就出来了。

没错,这也是正常生产环境中使用的方式之一。

但是,在非生产环境,需要检索、观察分析原数据时,这样的手段略显繁琐,尤其是拼接结构相对复杂的时候。这里简单提供一 shell 脚本,按输入拆分字符串。更简洁,灵活,轻量。

复杂字符串:二/三级字段以 \t 为分隔符拼接后,一级字段以 001 为分隔符…

{s//sep/}

脚本 split.sh 内容如下:

#!/bin/bash

s=$1
sep=$2

function deal(){
  arr=(${s//$sep/ })
  echo ${arr[@]}
}

deal

执行方式:

sh split.sh "1.1\t1669623112723\t\t\t10.93.192.245_10.93.192.249" '\\t'

拆分结果:

1.1 1669623112723 10.93.192.245_10.93.192.249
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏小言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值