首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数字范围的Grep

数字范围的Grep
EN

Unix & Linux用户
提问于 2014-03-21 18:13:05
回答 2查看 139.6K关注 0票数 23

如何在日志文件中搜索日期范围?

日志文件如下所示:

代码语言:javascript
运行
复制
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

我试过的

代码语言:javascript
运行
复制
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]"
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2014-03-21 18:32:47

这将产生预期的结果。

代码语言:javascript
运行
复制
egrep "08:[2][5-9]:[0-5][0-9]|08:[3][0-5]:[0-5][0-9]" foo

在这种情况下不需要使用cat

票数 16
EN

Unix & Linux用户

发布于 2014-03-21 18:44:47

有了这些投入:

代码语言:javascript
运行
复制
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打印两种模式之间的所有行:

代码语言:javascript
运行
复制
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
票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/120831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档