【发布时间】:2018-03-30 12:03:27
【问题描述】:
我的日志文件有这样的行:
2017/10/18 00:00:00 [WARNING]
2017/10/18 00:10:00 [WARNING]
2017/10/18 00:20:00 [WARNING]
2017/10/18 01:00:00 [WARNING]
2017/10/18 01:10:00 [WARNING]
2017/10/18 01:20:00 [WARNING]
例如,我想获取 2017/10/18 00:15:00 和 2017/10/18 01:15:00 之间的所有行。
我一直在尝试为此使用 grep 和 regex,但我找不到解决方案。我已经阅读了几个解决方案 (like this) 并了解了 awk。但似乎 awk 也需要一个正则表达式模式?
【问题讨论】:
-
为什么不将每一行的日期时间转换为
Datetime对象,然后针对Datetime对象进行测试以查看它是否在范围内?不需要为此使用正则表达式(除了提取日期时间),它更优雅一点 -
回答后你是什么语言? unix/linux shell 或 PHP 上的东西?您的问题中有冲突的标签...
-
@Matt_S,我在 php 脚本上使用 exec(),所以我猜这两种解决方案都很好。
-
@ctwheels:请注意,您不需要在此处转换任何内容,因为日期和时间是以遵循“字母”顺序的格式编写的,并且每个值都用零填充。 (YYYY/MM/DD HH:MM:SS)
-
@CasimiretHippolyte 你是对的,在这种情况下字母顺序将起作用。对我的忽视