解决线上故障不可忽略的利器

背景

平时工作中遇到线上故障时,往往需要对时间段内的日志进行清洗,得到特定字段值。最后执行修复脚本,从而进行线上故障修复,所以分享几个高效的vim命令,能让此过程更平滑。

进入底线命令模式

按:,进入底线命令模式

替换命令
1
2
3
4
5
:%s/a/b/g //将整个文件的的所有a替换成b
:%s/a/b/ //将每行的第一个a替换成b
:%!grep a //只留下含有a的行
:%!grep -v a //只去掉含有a的行

正则表达式

\d 数字

\D 排除数子

\{n} 出现n次

\{n,m} 出现n-m次

例子
  • 日志
1
2
3
xxxxcredit_flow_1234xxxxx
xxxxcredit_flow_2134xxxxx
xxxxcredit_flow_3124xxxxx
  • 目的

只留含有credit_flow_的行

替换关键字credit_flow_后的数字

  • 命令
    1
    2
    3
    4
    #只留下含有关键字的行
    %!grep credit_flow_
    #将整个文件的的所有符合规则的字符替换成目标字符
    %s/credit_flow_\d\{4}/credit_flow_0000/g