如何在日志文件中搜索日期范围?
日志文件如下所示:
01/14 00:00:01 INFO: received connect request from 10.10.10.10
我需要把日志压缩到10分钟,从8点25分开始,一直到8点35分。
当我使用下面的egrep时,我发现了太多的结果,例如00:08:25
01:08:25
. 08:25:00
..。
我怎么才能让08:25:00
通过08:35:59
我试过的
cat foo | egrep "08:2[5-9]|08:3[0-5]"
cat foo | egrep "08:2[5-9]:??|08:3[0-5]:??"
cat foo | egrep "08:2[5-9]:[0-9][0-9]|08:3[0-5]:[0-9][0-9]"
发布于 2014-03-21 18:32:47
这将产生预期的结果。
egrep "08:[2][5-9]:[0-5][0-9]|08:[3][0-5]:[0-5][0-9]" foo
在这种情况下不需要使用cat
。
发布于 2014-03-21 18:44:47
有了这些投入:
01/15 00:00:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
01/14 08:25:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
01/14 08:35:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
您可以使用awk
打印两种模式之间的所有行:
awk -v date='01/14' '$1!=date{next};/08:25/,/08:35/' logfile
01/14 08:25:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
01/14 00:00:01 INFO: received connect request from 10.10.10.10
01/14 08:35:01 INFO: received connect request from 10.10.10.10
https://unix.stackexchange.com/questions/120831
复制相似问题