Linux查看文本日志
grep
grep "getPenaltyCalDto" info.log
i-忽略大小写、n-显示行号 r-递归 C-显示该列前后内容
grep -in "getPenaltyCalDto" info.log
这样可以查找出行号,再到vim中根据行号来查找内容
cat info.log | grep 'getPenaltyCalDto'
查找,并显示定位内容的上下各两行,如果查中,就显示5行
grep "REQUEST ARGS" info.log -in -2
单向下就 -A2
,单线上就 -B2
时间段:
grep "2020-06-01 [0-5][0-9]:0[1-9]" info.log
grep "2020-06-01 15:[01-59]" info.log
vim
进入vim中查找
/text
--查找text, 按n查找下一个, N查找上一个
?text
--查找text(反向查找), 按n查找下一个, N查找上一个
查看行号
:set number
跳转到对应的行号
:186
sed
sed -n '199,202p' info.log
读取 199,202行数据
sed -n '/2019-11-17 16:17:20/,/2019-12-17 16:17:36/p' test.log
查找指定日期范围内的日志
awk
日志:
2020-06-01 10:05:02,937 [http-nio-8080-exec-10] INFO c.shitou.huishi.aop.ControllerAspect.aroundAdvice(ControllerAspect.java:55) - HTTP_METHOD : POST
2020-06-01 10:05:02,937 [http-nio-8080-exec-10] INFO c.shitou.huishi.aop.ControllerAspect.aroundAdvice(ControllerAspect.java:56) - IP : 10.244.3.0
2020-06-01 10:05:02,938 [http-nio-8080-exec-10] INFO c.shitou.huishi.aop.ControllerAspect.aroundAdvice(ControllerAspect.java:57) - CLASS_METHOD : com.shitou.huishi.service.PlanGenServiceImpl.getPlanList
筛选:根据空格来作分隔符
awk -F'[ ]' '$2 > "10:05:01" && $2 < "10:05:59"' info.log
or:
awk -F '[ ]' ' $2 > "10:05:01" && $2 < "10:05:59" {print $0}' info.log
or 根据左中挂号来分隔符
awk -F '[' '$1>"2020-06-01 10:05:01"&&$1<"2020-06-01 14:56:59" {print $0}' info.log