多关键字过滤并多色高亮日志内容脚本
痛点
在服务器直接通过 tail
命令滚动输出查看日志内容时,会存在以下的问题:
- 共用一套测试环境时 ,存在交叉调用的日志内容;
- 大多Shell工具搜索只能高亮单个关键字;
- 日志内容杂乱,多个关键字需肉眼定位和比对。
手写脚本
针对上述的问题,可以通过 grep
的多关键字过滤,加上 perl
对指定关键字输出对应的颜色。
1 |
|
注意: 空格需要使用反斜线(
\
)转义
脚本说明
需要高亮的关键字:
1 |
|
注意:每个括号里的关键字对应下面的$1到$n。
需要高亮的关键字颜色:
1 |
|
注意:$1即匹配关键字的第1个,$2即匹配关键字的第2个,以此类推。$n是根据实际匹配上的顺序定义的。
如果关键字未匹配到,$n的颜色会去匹配第 (n+1) 的关键字。
在Linux终端中,可以使用ANSI转义序列来设置文本的颜色和样式。下面是一些常用的颜色代码:
1 |
|
默认颜色(通常是终端默认的前景和背景颜色):\e[0m
这些颜色代码可以与其他样式代码一起使用,例如:
1 |
|
使用这些颜色和样式代码,将它们插入到文本之前,在文本之后添加 \e[0m
来恢复默认设置。
比如,将文本设置为红色粗体,可以使用以下代码:
1 |
|
这将使文本以红色粗体显示,并在文本后面添加 \e[0m
以恢复默认设置。
生成脚本
上面使用了手动编辑的方式来生成脚本,当修改内容多时容易修改错了,并且高亮颜色值也不容易被记忆住。
所以可以将脚本需要修改的内容提取出来,通过页面配置,并自动生成可用的过滤高亮脚本。
上述的页面中,通过将 6 个变量内容提取出来在页面可视化配置:
- 日志地址
- 过滤关键字
- 上色关键字
- 颜色配置
每行匹配1个定义的上色关键字,如果不设置颜色默认是白色:\e[1;37m
- 显示过滤关键字前面几行
- 显示过滤关键字后面几行
通过页面生成直接能在命令行粘贴使用的脚本,简化了编辑脚本的难度,提高了可用性。体验地址:日志多关键字过滤+高亮脚本生成器[1]
使用效果
在使用脚本后,日志的内容得到了过滤并对特定关键字使用了多色高亮来区分。
(本文完)
多关键字过滤并多色高亮日志内容脚本
https://maojun.xyz/blog/2023/09/多关键字过滤并多色高亮日志内容脚本.html