grep日志中的日期范围

cod*_*ver 7 regex shell datetime grep

我试图grep两个日期范围之间的所有行,日期格式如下:date_time.strftime("%Y%m%d%H%M")所以说[201211150821 - 201211150824]

我正在尝试编写一个脚本,其中涉及查找这些日期之间的行:

cat <somepattern>*.log | **grep [201211150821 -  201211150824]** 
Run Code Online (Sandbox Code Playgroud)

我试图找出unix中是否存在某些内容,我可以在其中查找日期范围.

我可以将日志中的日期转换为(从epoch开始),然后使用常规grep和[time1 - time2],但这意味着读取每一行,提取时间值然后转换它等.

可能是一些简单的东西已经存在,所以我可以指定日期/时间戳范围,就像我可以为grep提供数值范围一样?

谢谢!

PS:我也可以传递类似于2012111511(27 | 28 | 29 | [3-5] [0-9])的模式,但这是特定于我想要的范围和每次尝试不同日期的繁琐在运行时变得更加棘手.

sch*_*ver 2

使用 awk。假设该行中的第一个标记是时间戳:

awk '
BEGIN { first=ARGV[1]; last=ARGV[2]; }
$1 > first && $1 < last { print; }
' 201211150821 201211150824
Run Code Online (Sandbox Code Playgroud)