日志统计常用命令

1.介绍

cat a.log |awk -F ',' '{print $5}' |sort | uniq -c| sort -nr
  • awk: 以逗号为分隔符,分割后选择第5列的内容;$0表示打印所有内容。
  • grep: -o只输出命中匹配的字符串,而不是整行;
  • sort: 先按照字符串正序排序;
  • uniq: -c 统计每行出现的次数,输出两列,第一列是次数;
  • sort: -nr,按照数字降序排列。

2.awk命令

awk [-F  field-separator]  'commands'  input-file(s)

command可以写语句块,太过复杂,先不学。

3.sort命令

https://juejin.cn/post/6987292528412196871

​ sort命令将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);【常用】
-r  :反向排序;【常用】
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思

例子:

apple,5,2.6
orange,8,8
banana,3,7.2
pear,6,4

————————————
$ sort -t , -k 2 a.log  #用,号分割,按第二列排序
banana,3,7.2
apple,5,2.6
pear,6,4
orange,8,8

4.uniq命令

 uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。一般先sort后uniq

  • -i   :忽略大小写字符的不同;
  • -c :计数出现次数;
  • -u :只显示唯一的行;
banana,3,7.2
apple,5,2.6
pear,6,4
orange,8,9
apple,5,2.6
banana,3,7.2
————————————————
$ sort log.txt|uniq -c
   2 apple,5,2.6
   2 banana,3,7.2
   1 orange,8,9
   1 pear,6,4

5.grep命令

-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数。【count】
-i :忽略大小写的不同,所以大小写视为相同。【ignore】
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示

猜你喜欢

转载自blog.csdn.net/huanting74/article/details/143443087