Вы должны переформатировать дату в гггг / мм / дд, чтобы сравнить их.
Вы можете создать файл log.awk
{
# create a command that will convert the date from dd/mm/yyyy to yyyy/dd/mm
# and apply it on third field
cmd = "echo "$3" | sed 's-\\(.*\\)/\\(.*\\)/\\(.*\\)-\\3/\\2/\\1-'"
# execute sed and store result in datef
cmd | getline datef
close(cmd)
# filter on date
if (datef>=datemin && datef<=datemax)
print $0
}
и вызвать вашу программу таким образом ( здесь, фильтр только на апрель 2020):
awk -f log.awk -vdatemin=2020/04/01 -vdatemax=2020/04/30 log.log
Вы также можете добавить время к вашей дате (я не проверял это):
{
# create a command that will convert the date from dd/mm/yyyy to yyyy/dd/mm
# and apply it on third field
cmd = "echo "$3" | sed 's-\\(.*\\)/\\(.*\\)/\\(.*\\)-\\3/\\2/\\1-'"
# execute sed and store result in datef
cmd | getline datef
close(cmd)
datetime = datef ":" $4
# filter on date
if (datetime >=datemin && datetime tef<=datemax)
print $0
}
и вызвать вашу запрограммируйте так:
awk -f log.awk -vdatemin=2020/04/01:12:00:10 -vdatemax=2020/04/30:15:00:00 log.log