Pages

Thursday, 26 May 2022

Linux文本分析工具

 师姐分析我的项目产生的日志,用5,6个十分简单的命令组合就可以将几兆的日志文件分析到位。

作为后端工程师,经常需要对日志等信息进行分析。当然可以用php/python等语言写脚本对日志进行分析;与此同时,如果你懂得一些Linux的文本分析工具并进行组合使用,一行命令就可以搞定。

本文汇总一些简单的Linux文本分析命令,以便将来查阅。

练手示例文件

1wget https://raw.githubusercontent.com/woodyxiong/SmartEye/1ef49140fadd2a4e502a57972a90f7befd57bab9/User/Runtime/Logs/Home/16_08_29.log;mv 16_08_29.log test.log

cat 取出文件内容

cat [-AbeEnstTuv] [–help] [–version] fileName

  • cat -n fileName 取出行号
  • cat -b fileName 也是取出行号,空白行没有行号

grep 搜索

grep [-abcEFGhHilLnqrsvVwxy][-A<显示之后列数>][-B<显示之前列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录…]

  • cat test.log | grep -A 5 -B 2 /user.php/Home/login/checklogin.html 显示查找的目标后5行和前2行的内容
  • cat test.log | grep -i ‘end’ 无视大小写搜索
  • cat test.log | grep -v ‘end’ 反选

awk 分割字符串

awk -F ‘,’ ‘{print $1,$2}’,分割字符串,并输出第一列和第二列

  • awk -F ‘,’ ‘{print “逗号前:”$1,”逗号后:”$2}’ 将搜索结果拼接字符串
  • awk -F ‘,’ ‘$1<=1 {print $1,$2}’ 显示第一列小于1的
  • awk脚本的高级功能

uniq

sort 排序

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–verison] [文件]

  • sort 默认是按照string进行排序的
  • sort -n 按照数字进行排序 从小到大
  • sort -b 忽略空格
  • sort -r 倒序排序

wc 计算字数行数

wc [-clw][–help][–version][文件…]

  • cat test.log|wc -l 统计行数
  • cat test.log|wc -w 统计词数
  • cat test.log|wc -c 统计Bytes数

No comments:

Post a Comment