很早,请原谅我缺乏口头上的技巧。
我有一个文件,其中包含我想根据日期和时间范围进行子集化的记录。具体从第一天的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
最后,我想要的是一个包含循环记录的文件(例如:一个文件,记录来自2015-08-01 17:00:00到2015-08-02 05:00 :00)
我的正则表达式/ grep / etc foo很弱。使用Java,Perl或任何Linux命令行工具的实现将非常有用。
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:2)
我可能会使用awk
:
awk -F, '$2 >= " 2015-08-01 17:00:00" && $2 <= " 2015-08-02 05:00:00"' data
在逗号上拆分字段。观察数据以空白开头。如果字段2落在指定范围内,则打印数据行。
这适用于任何有效格式化的日期。如果您有包含2015-08-01 99:99:99
的记录,那么也会选择该记录。它不依赖于数据文件中连续的行,尽管它们很可能会存在。