Se você abrir o arquivo em um descritor de arquivo como:
exec 3< /path/to/log/file
Você pode processá-lo:
awk '...' <&3
Depois disso, o fd 3 apontará para onde awk
o deixou.
10 minutos depois, a partir da mesma invocação de shell, você pode executar isso
awk '...' <&3
comando novamente para processar os novos dados.
Se você quiser salvar a posição em que estava, para poder retomar a leitura de uma chamada de shell diferente, com ksh93
, você pode fazer:
#! /usr/bin/env ksh93
file=/path/to/some-file
offset_file=$file.offset
exec 3< "$file"
[ -f "$offset_file" ] && exec 3<#(($(<"$offset_file")))
awk '...' <&3
echo "$(3<#((CUR)))" > "$offset_file"
Ou com zsh:
#! /usr/bin/env zsh
zmodload zsh/system
file=/path/to/some-file
offset_file=$file.offset
exec 3< $file
[ -f "$offset_file" ] && sysseek -u 3 "$(<$offset_file)"
awk '...' <&3
echo $((systell(3))) > $offset_file