我有以下测试数据,我能够获取当前日期的数据,
如何比较从00:00:01
到08: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" '$3==a' file
我不知道如何打破第四列,即 时间比较时间范围。
答案 0 :(得分:0)
a=$(date +%m/%d/%Y)
awk -F":| *" -v a="$a" '$3==a {t=($4*60*60 + $5*60 + $6); if(t>=1 && t<=28800) print}' File
使用:
和space sequence
作为字段分隔符。在这里,我将时间转换为秒,并检查它是否在(包括)1s
和8hrs
之间。如果那时,打印该行。日期检查作为第一个过滤器($3==a
)
答案 1 :(得分:0)
awk -v a=`date '+%m/%d/%Y'` '$3$4 ~ a"0[0-8]"' file
上面给出了今天日期所需的行。
如果您想要所有这些行,请使用:
awk '$4 ~ "0[0-8]"' file
请注意,您必须根据时间范围修改正则表达式(~
之后的字符串)。