grep 特定的日期模式

grep 特定的日期模式

我有一个要求,我需要从涵盖日期范围 2011/03/25 到 2011/04/04(YYMMDD)的日志中进行 grep。

我已经使用 egrep 命令完成了此操作,对我来说似乎效果很好。

cat /var/log/messages | egrep “2011/03/2[6-9]|2011/03/3[0-1]|2011/04/0[1-4]”

我正在寻找可以让我的生活变得简单的 awk 命令。

以下是日志文件的片段...

 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01

答案1

awk -F - '"2011/03/25" < $1 && $1 <= "2011/04/04"' filename

或者,如果日期更加动态

d1="2011/03/25" # or whatever commands to set this date
d2="2011/04/04" # or whatever commands to set this date
awk -v start=$d1 -v end=$d2 -F - 'start < $1 && $1 <= end' filename

相关内容