我有一个要求,我需要从涵盖日期范围 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