Linux根据关键字过滤日志记录命令总结

您所在的位置:网站首页 linux常用命令日志 Linux根据关键字过滤日志记录命令总结

Linux根据关键字过滤日志记录命令总结

2023-12-31 21:35| 来源: 网络整理| 查看: 265

引言

Linux日志中存储了大量信息,但是在于如何快速提取信息。可以使用许多工具来执行此操作,从命令行工具到更多工具先进的分析工具能够搜索特定字段,计算汇总,生成图表等。本篇主要想集中于awk、grep、sed三种查询方式进行总结。

awk命令解析

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。

FS :输入字段分隔符,默认为空白字符OFS :输出字段分隔符,默认为空白字符RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效ORS :输出记录分隔符,输出时用指定符号代替换行符NF :字段数量,共有多少字段, N F 引 用 最 后 一 列 , NF引用最后一列, NF引用最后一列,(NF-1)引用倒数第2列NR :行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始FILENAME :当前文件名ARGC :命令行参数的个数ARGV :数组,保存的是命令行所给定的各参数,查看参数

那么如下就是我做的实验情况:

[root@VM-0-11-centos software]# cat text.log 2021-01-21 18:11:37 FrameStore INFO - check calc time:840187c5-432e-11eb-b3b1-0242ac1b0004 1107 1116 1611223897.2701166 2021-01-22 18:12:37 FrameStore INFO - check calc time:c379c04f-f677-11ea-8643-0242ac110002 243 252 1611223897.3986614 2021-01-23 18:13:37 FrameStore INFO - check calc time:203d164b-4330-11eb-b3b1-0242ac1b0004 1017 1026 1611223897.5125592 2021-01-24 18:14:37 FrameStore INFO - check calc time:840187c5-432e-11eb-b3b1-0242ac1b0004 1116 1125 1611223897.6267443 [root@VM-0-11-centos software]# awk -v FS=':' '{print $1,$2}' text.log # FS指定输入分隔符 2021-01-21 18 11 2021-01-22 18 12 2021-01-23 18 13 2021-01-24 18 14 [root@VM-0-11-centos software]# awk -v FS=':' -v OFS='---' '{print $1,$2}' text.log # OFS指定输出分隔符 2021-01-21 18---11 2021-01-22 18---12 2021-01-23 18---13 2021-01-24 18---14 [root@VM-0-11-centos software]# awk -v RS=':' '{print $1,$2}' text.log 2021-01-21 18 11 37 FrameStore 840187c5-432e-11eb-b3b1-0242ac1b0004 1107 12 37 FrameStore c379c04f-f677-11ea-8643-0242ac110002 243 13 37 FrameStore 203d164b-4330-11eb-b3b1-0242ac1b0004 1017 14 37 FrameStore 840187c5-432e-11eb-b3b1-0242ac1b0004 1116 [root@VM-0-11-centos software]# awk -F: '{print NF}' text.log # 显示每行有多少字段 4 4 4 4 [root@VM-0-11-centos software]# awk -F: '{print $NF}' text.log # 将每行第NF个字段的值打印出来 840187c5-432e-11eb-b3b1-0242ac1b0004 1107 1116 1611223897.2701166 c379c04f-f677-11ea-8643-0242ac110002 243 252 1611223897.3986614 203d164b-4330-11eb-b3b1-0242ac1b0004 1017 1026 1611223897.5125592 840187c5-432e-11eb-b3b1-0242ac1b0004 1116 1125 1611223897.6267443 [root@VM-0-11-centos software]# awk -F: 'NF==4 {print }' text.log # 显示只有4个字段的行 2021-01-21 18:11:37 FrameStore INFO - check calc time:840187c5-432e-11eb-b3b1-02 42ac1b0004 1107 1116 1611223897.2701166 2021-01-22 18:12:37 FrameStore INFO - check calc time:c379c04f-f677-11ea-8643-02 42ac110002 243 252 1611223897.3986614 2021-01-23 18:13:37 FrameStore INFO - check calc time:203d164b-4330-11eb-b3b1-02 42ac1b0004 1017 1026 1611223897.5125592 2021-01-24 18:14:37 FrameStore INFO - check calc time:840187c5-432e-11eb-b3b1-02 42ac1b0004 1116 1125 1611223897.6267443 [root@VM-0-11-centos software]# awk -F: 'NF


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3