awk比较24小时数据的时间字段

awk to compare time field for 24 hours data

我有以下测试数据,我已经能够获取当前日期的数据, 如何比较从 00:00:0108:00:00 获取数据的时间?

Test1   prog  02/20/2017  03:45:56 Success
Test2   prog  02/20/2017  05:21:38 Fail
Test3   prog  02/20/2017  09:35:36 Success
Test4   prog  02/19/2017  06:15:56 Fail
Test5   prog  02/18/2017  07:35:16 Active
Test6   prog  02/19/2017  03:45:56 Success

我做到了

a=`date +%m/%d/%Y`
awk -v a="$a" '==a' file

我不知道如何打破第四列,即 是时候比较它的时间范围了。

a=$(date +%m/%d/%Y)

awk -F":| *" -v a="$a" '==a {t=(*60*60 + *60 + ); if(t>=1 && t<=28800) print}' File

使用 :space sequence 作为字段分隔符。在这里,我将时间转换为秒并检查它是否介于(含)1s8hrs 之间。如果是,则打印该行。日期检查作为第一个过滤器完成 (==a)

awk -v a=`date '+%m/%d/%Y'` ' ~ a"0[0-8]"' file

以上给出了今天日期所需的行。

如果您想要所有这些行,请使用:

awk ' ~ "0[0-8]"' file

注意要根据你的时间范围修改正则表达式(~后的字符串)