shell统计常用命令

  1. 工作中需要在日志文件中抓取耗时,每一行中耗时字段的存储形式为
xxxxxxxx time=1:13,2:9,3:21,4:2 xxxxxxxxxxxxxx

目标是抓取所有行中3:XX后面的数字

grep 'time=' log.txt |  grep -Eo '[,3:[0-9]+]' |  awk -F ':'  {print $2}
# -E    用正则表达式查找
# -o    只显示匹配的部分

参考:
https://www.dazhuanlan.com/lingxiran/topics/1481728
https://www.runoob.com/linux/linux-comm-grep.html

  1. 统计某个字段的出现次数
grep  -oP "total_time=1\d\d"  log.txt  | wc -l    #统计“total_time=3xx”字符串的出现行数
# -P    用正则表达式查找
# -o    只显示匹配的部分
  1. 统计匹配到的值的和/平均值
grep  -oP "total_time=1\d\d"  log.txt | awk -F '=' '{sum+=$2} END {print sum}'        # 求和
grep  -oP "total_time=1\d\d"  log.txt | awk -F '=' '{sum+=$2} END {print sum/NR}'  # 求平均 
# (awk) -F 指定分隔符
# NR 行数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容