提取非标准日期范围内的行,许多日期。例如:2015-08-01 17:00:00 到 2015-08-02 05:00

Extract lines within non standard date range, many dates. Ex: 2015-08-01 17:00:00 to 2015-08-02 05:00

时间还早,请原谅我的语言不通

我有一个文件,其中包含我想根据日期和时间范围进行子集化的记录。具体从第一天 17:00 到第二天 05:00,包括在内。

UniqueData, 2015-08-01 17:00:00,MiscNotImportantData    
UniqueData, 2015-08-01 17:00:00,MiscNotImportantData    
UniqueData, 2015-08-01 17:00:00,MiscNotImportantData
...
UniqueData, 2015-08-02 05:00:00,MiscNotImportantData    
UniqueData, 2015-08-02 05:00:00,MiscNotImportantData    
UniqueData, 2015-08-02 05:00:00,MiscNotImportantData
  1. 月份不变。
  2. 时间以 30 秒为单位递增。
  3. 11 条记录将包含相同的日期和时间,但在日期和时间之前包含唯一的数据。

最后,我想要的是一个包含循环记录的文件(例如:一个文件包含从 2015-08-01 17:00:00 到 2015-08-02 05:00:00)

我的 regex/grep/etc foo 很弱。使用 Java、Perl 或任何 Linux 命令行工具的实现将非常有用。

谁能指出我正确的方向?

谢谢!

我可能会为此使用 awk

awk -F, ' >= " 2015-08-01 17:00:00" &&  <= " 2015-08-02 05:00:00"' data

用逗号分隔字段。观察数据以空白开头。如果字段二在指定范围内,则打印该行数据。

这适用于任何格式有效的日期。如果您有包含 2015-08-01 99:99:99 的记录,那么它也会被选中。它不依赖于数据文件中连续的行,尽管它们很可能是连续的。