Se você relaxasse a exigência dos últimos 10 minutos e usasse o GNU coreutils e o grep, isso seria muito fácil:
tail -f -s 60 -n +0 file.txt | grep -m 1 pattern
Ative todo o arquivo iniciando na linha zero ( -n +0
), faça polling a cada -s
segundos e o grep parará após -m
corresponder.
Para uma pesquisa interativa única, não incomodaria a análise de datas e, a princípio, alteraria manualmente a linha de início com o tail -n
. A análise de data poderia ser escrevendo um script em sua linguagem de script favorita com um módulo decente para isso (Python, Perl).
Por fim, se você quiser um mecanismo de pesquisa para seus logs, procure implment sistemas de gerenciamento de eventos como Graylog, ELK, Splunk, Log Insight, LogRitmo etc.