测试过程中,经常会出现一闪而过的错误信息提示,没来得及截图, 要想复现,有些许困难。留给开发去定位问题的,只能是提供当时错误信息提示的大概时间, 如2020-07-20 13:00 -13:10 这个时间段,去后台找日志。
以下是2种查看指定时间段日志的命令,比较常用。
日志文件如下-仅供测试:
要求:查询2020-07-21 11:58:00~ 12:05:50 这个时间段的日志
方法一 :使用grep命令
命令如下:
grep -E '2020-07-21 1[1-2]:[5-0][8-5]:[0-5]0' out.log
执行结果:Invalid range end
正则表达式匹配的数字 为:[0-9] 等价于 [[:digit:]] 因此以上命令不可用。
换种思路:11:58:00 ~ 12:05:50 这个时间段 拆分为 11:58:00~11:59:59 和12:00:00~12.05:50,命令如下:
'2020-07-21 11:5[8-9]:[0-5][0-9]|2020-07-21 12:0[0-5]:[0-5]0' out.log
grep -E 选项可以用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用
方法二: 使用sed 命令
'/2020-07-21 11:58:00/,/2020-07-21 12:05:50/p' out.log
sed -n
-n选项:只显示匹配处理的行(不加会输出所有)
-p选项:打印
-n 和-p 经常一起使用