awk、grep、cut、sort、uniq简单命令玩转日志分析与统计

test.log 2019-1010-1920 192.345.23.3 cause:"AAA" type:"A" loginIn 2019-1010-1920 192.345.23.1 cause:"BBB" type:"A" loginIn 2019-1010-1920 192.345.23.3 cause:"AAA" type:"S" loginIn 2019-1010-1920 192.345.23.1 cause:"BBJ" type:"A" loginIn 按列分割 提取第三列 日志列数比较少或则要提取的字段比较靠前时,优先使用awk。当然cut也可以做到。 比如输出日志的第三列 awk '{print $3}' test.log // $3表示第三列 cut -d " " -f3 test.log // -f3指定第三列, -d用来指定分割符 正则提取 提取cause字段的原因值? 2019-1010-1920 192.345.23.3 cause:"AAA" type:"A" loginIn 2019-1010-1920 192.345.23.1 type:"A" loginIn cause:"BBB" 2019-1010-1920 192.345.23.3 cause:"AAA" type:"S" loginIn 2019-1010-1920 192.345.23.1 type:"A" cause:"BBJ" loginIn 当要提取的内容不在同一列时,往往就无法用cut或者awk就按列提取。最好用的方式是用grep的正则提取。 好像grep不支持捕获分组,所以只能提取出出cause:“AAA”,而无法直接提取出AAA E 表示使用正则 o 表示只显示匹配到的内容 > grep -Eo 'cause:"....

2018-12-18 · 1 min · 王端端

grep awk 搜索日志常用命令

1. grep 常用参数 参考: GNU Grep 3.0 --color:高亮显示匹配到的字符串 -v:显示不能被pattern匹配到的 -i:忽略字符大小写 -o:仅显示匹配到的字符串 -q:静默模式,不输出任何信息 -A#:after,匹配到的后#行 -B#:before,匹配到的前#行 -C#:context,匹配到的前后各#行 -E:使用ERE,支持使用扩展的正则表达式 -c:只输出匹配行的计数。 -I:不区分大 小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 - m: 匹配多少个关键词之后就停止搜索 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 2. 普通:搜索trace.log 中含有ERROR字段的日志 grep ERROR trace.log 3. 输出文件:可以将日志输出文件中 grep ERROR trace.log > error.log 4. 反向:搜索不包含ERROR字段的日志 grep -v ERROR trace.log 5. 向前:搜索包含ERROR,并且显示ERROR前10行的日志 grep -B 10 ERROR trace.log 6. 向后:搜索包含ERROR字段,并且显示ERROR后10行的日志 grep -A 10 ERROR trace.log 7. 上下文:搜索包含ERROR字段,并且显示ERROR字段前后10行的日志 grep -C 10 ERROR trace.log 8. 多字段:搜索包含ERROR和DEBUG字段的日志 gerp -E 'ERROR|DEBUG' trace....

2018-02-09 · 1 min · 王端端