师姐分析我的项目产生的日志,用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