【发布时间】:2012-11-10 03:43:28
【问题描述】:
我正在尝试 grep 2 个日期范围之间的所有行,其中日期的格式如下: date_time.strftime("%Y%m%d%H%M") 所以说 [201211150821 - 201211150824]
我正在尝试编写一个脚本,其中涉及查找这些日期之间的行:
cat <somepattern>*.log | **grep [201211150821 - 201211150824]**
我正在尝试找出 unix 中是否存在某些东西,我可以在其中查找日期范围。
我可以将日志中的日期转换为(自纪元以来),然后将常规 grep 与 [time1 - time2] 一起使用,但这意味着读取每一行,提取时间值,然后进行转换等。
可能已经存在一些简单的东西,所以我可以指定日期/时间戳范围,就像我可以向 grep 提供数字范围一样?
谢谢!
附注: 我也可以传入类似 2012111511(27|28|29|[3-5][0-9]) 的模式,但这特定于我想要的范围,并且每次尝试不同的日期都很乏味并且变得更加棘手在运行时进行。
【问题讨论】:
-
最简单的方法是
gawk+ 将日期解析为纪元时间 + 在gawk中过滤 -
正则表达式没有数值范围的概念。只有字符。如果您不想每次都创建特定的正则表达式,那么 grep 不是正确的工具。