尝试获取给定时间范围内的unix日志

时间:2016-08-10 05:50:56

标签: unix awk sed

我很难在给定的时间范围内从文件中获取日志。 我已经浏览了其他帖子,但到处都是硬编码的日期/时间,我不希望它被硬编码并且想以编程方式获取它。

这就是我一直在尝试的。

此作品

 awk -F, -v b='2016-08-10 00:40:06' -v e='date +"%F %T"' '{ if ($1 >= b && $1 <= e) print}' filename

虽然这不起作用,但

awk -F, -v b='date --date="10 minutes ago" +"%F %T"' -v e='date +"%F %T"' '{ if ($1 >= b && $1 <= e) print}' filename

不确定为什么第一个Date参数没有动态计算?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

 awk -v b="`date --date '10 minutes ago'`" 

示例:

date;echo 1 2 3 |awk -v d="`date --date '10 minutes ago'`" '{print d}'
Wed Aug 10 01:57:23 EDT 2016
Wed Aug 10 01:47:23 EDT 2016

echo 1 2 3 | awk -v d="`date --date '10 minutes ago'`" -v e="`date +%F%T`" '{print d, e}'
Wed Aug 10 01:50:05 EDT 2016 2016-08-1002:00:05