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 · 王端端