首页 > 其他分享 >日志分析中的 awk、sort、uniq 和 grep 应用

日志分析中的 awk、sort、uniq 和 grep 应用

时间:2024-02-20 17:57:31浏览次数:28  
标签:sort txt grep log awk uniq

awk简介

  awk是一种强大的文本处理工具,其功能与sed和grep相似,但更加灵活。它使用类似C语言的语法,并且适用于处理结构化文本数据,如表格数据。awk是一种模式扫描和处理语言,可以轻松提取、操作和格式化文本数据,特别是适用于处理日志文件中的结构化信息。

sort简介

  sort用于对文本数据进行排序。它可以对文件内容进行排序,也可以从标准输入中读取数据并对其排序,然后将结果输出到标准输出或指定的文件中。

uniq简介

  uniq命令用于删除文件中的重复行,经常与sort命令一起使用,因为uniq要求重复的行一定相邻。所以在使用uniq命令之前,请使用sort命令使所有重复行相邻。

grep简介

  grep是一个强大的文本搜索工具,它的主要功能是进行字符串数据的比较,并将符合条件的行打印出来。grep在数据中查找一个字符串的时候,是以整行为单位进行筛选的。

日志分析中的应用

1、查找请求次数最多的IP前十

awk '{print $9}' log.txt |sort |uniq -c |sort -rn |head

#打印文件的IP字段,排序、去重、倒序、列出前十行
sort 对输入进行排序。 默认情况下,它会按照字典顺序对文本进行排序
sort -r 倒序,用于反向排序
	 -n 按照数字排序

uniq 用于从已排序的文本中删除重复的行
	 -c 用于计数每个行重复出现的次数
	 
head 用于从排序的结果中选取头部行,默认为10


2、查找访问成功状态码为200的IP

awk '$17=="200"{print $9}' log.txt |sort |uniq -c |sort -rn 


3、查找访问成功状态码为200的总次数

awk '$17==200' log.txt |wc -l

wc -l 用于统计文件中的行数


4、查找攻击类型为WEBSHELL的IP

awk '$7=="WEBSHELL"{print $9}' log.txt |sort |uniq -c |sort -rn


5、查找某个IP访问过的URL

grep 'xxx.xx.xx.xx' log.txt | awk '{print $13}' |sort |uniq -c |sort -rn


6、提取文件中所有出现过的URL

cat log.txt |grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" |sort |uniq -c |sort -rn

-E 使用扩展正则表达式(Extended Regular Expression)进行匹配
-o 仅输出匹配到的文本,而不是整行


7、查找某一IP有关的所有URL

awk '$9=="xxx.xx.xx.xx"' log.txt |grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" |sort |uniq -c |sort -rn


8、查找访问过某个URL的IP

grep "/etc/shells" log.txt |awk '{print $9,$13}'


标签:sort,txt,grep,log,awk,uniq
From: https://www.cnblogs.com/BMCel/p/18023693

相关文章

  • 轻松掌握 Linux 文本处理三剑客:grep、awk 和 sed 实战演练
     Shell脚本语言编程有哪些优势呢?Shell脚本语言的优势在于能够以最轻量级最快捷的速度处理Linux操作系统偏底层的业务。比如软件的自动化安装、更新版本,监控报警,日志分析等。虽然其他高级编程语言如PHP、Python、Ruby等语言也能做到,但是效率和开发成本上会大打折扣,所谓“......
  • linux 中 grep命令 $?返回值 0、1、2的意义
     0:找到匹配模式1:未找到匹配模式2:指定的输入文件不对001、[root@pc1test1]#lsa.txt[root@pc1test1]#cata.txt##测试文本aabbcc11aa3333ddbb[root@pc1test1]#grep"aa"a.txt##匹配aaaabbcc11aa33[root@pc1test1]#echo$?......
  • grep -air
    grep-air是一个在使用grep命令时经常见到的命令行选项组合。grep是一个在文本文件中搜索特定模式的命令行工具,广泛用于Unix和类Unix系统。每个字母代表一个特定的选项,组合在一起可以更精细地控制grep的行为。这里是-air选项的含义:-a或--text:此选项使grep将二......
  • sorted matrix 系列 378
     378.KthSmallestElementinaSortedMatrix SolvedMedium Topics CompaniesGivenan nxn matrix whereeachoftherowsandcolumnsissortedinascendingorder,return the kth smallestelementinthematrix.Notethatitisthe ......
  • linux awk语句中next 和 continue的区别
     next是跳过当前行(awk自身是列循环和行循环的结合);continue是跳过当前循环(跳过列循环); 001、next;跳过当前行(base)[b20223040323@admin1test2]$lsa.txt(base)[b20223040323@admin1test2]$cata.txt##测试文本001002003004005006007008......
  • linux 中awk 根据多列读数据进行去重复
     001、(base)[b20223040323@admin1test2]$lstest.txt(base)[b20223040323@admin1test2]$cattest.txt##测试数据如下;根据第一列和第三列对数据进行去重复ID=gene-RIN1rna-XM_018043206.13615ID=gene-STRIP2rna-XM_018046935.13917ID=gene-ST......
  • linux 中awk命令实现根据一列数值的大小筛选指定列多个类别的最大或者最小项
     001、(base)[b20223040323@admin1test2]$cat003.txt##测试数据如下,第一列有多个项,且部分项有重复,实现根据第三列筛选出最大的项ID=gene-TRNAC-GCArna-TRNAC-GCA72ID=gene-ATP5Orna-XM_005674665.3793ID=gene-ITSN1rna-XR_001917533.14......
  • day30-三剑客awk
    awk是什么再谈三剑客grep,擅长单纯的查找或匹配文本内容sed,更适合编辑、处理匹配到的文本内容awk,更适合格式化文本内容,对文本进行复杂处理后、更友好的显示三个命令称之为Linux的三剑客awk学完后的能力以下部分内容需要结合shell编程对文本行数据提取数据字段模式、动......
  • day10_管道符与grep与find
    关于代码文件和图片文件的存放务必搞清楚,绝对路径和相对路径关于linux命令执行的结果,以及后续处理关于文件打开的底层流程(文件句柄的概念)tail-f用法1.要求被检测的文件,存在2.可以tail-f检测关于html乱码以及UTF-8编码表的概念字节和字符挂钩的简单记忆1.查......
  • Linux 中 使用awk数组根据基因的PAV矩阵计算基因的存在频率
     001、测试数据[b20223040323@admin1test]$lsx_gather_pav.txt[b20223040323@admin1test]$catx_gather_pav.txt##测试数据;每一行是一个个体;每一列是一个基因;矩阵中的0表示基因在这个个体中缺失,1表示基因在这个个体中存在01111......