Em bash
e usando o GNU date
(padrão na maioria dos sistemas Linux), você pode fazer isso:
threshold=$(( $(date -d 12:01:04 +%s) - 60 ))
paste file <(awk '{ print $2 }' file | date -f - +%s) |
awk '$3 > '"$threshold"' { print $1,$2 }'
Ou para preservar a formatação conforme o exemplo na pergunta:
threshold=$(( $(date -d 12:01:04 +%s) - 60 ))
paste file <(awk '{ print $2 }' file | date -f - +%s) |
awk '$3 > '"$threshold" |
cut -c 1-15
Saída:
George 12:00:15
Max 12:01:03
Andrea 12:00:10
Para um exemplo real, você também pode fazer a data "1 minuto atrás" (conforme a resposta de Gnouc). A primeira linha seria:
threshold=$(date -d '1 minute ago' +%s)