Desde que o OP disse
This should preferably account for the logs rolling over to new files.
(note o "preferencialmente"), e não há outra resposta até agora, e no meu caso não houve log-rotate envolvido, eu acho que isso é solução "boa o suficiente", e pelo menos responde o título da questão.
Eu assumo um arquivo de entrada chamado input.txt, e escrevi um script que só gera as novas linhas desde a última vez em que foi chamado, tomando o arquivo de entrada como parâmetro. Aqui eu mostro o script (bastante primitivo) e como ele funciona.
[user@system test]$ ll
insgesamt 8
-rwxrwxr-x 1 user user 304 30. Jan 11:33 find-new-lines
-rw-rw-r-- 1 user user 6 30. Jan 10:42 input.txt
[user@system test]$ cat find-new-lines
#!/bin/bash
# We need last line count. Assume 0 on first run.
if [ ! -f "$1-last-lines-count.txt" ]; then
echo 0 > $1-last-lines-count.txt
fi
# Find current line count
wc -l $1 | cut -d' ' -f1 > $1-current-lines-count.txt
# Find number of new lines, if any
expr 'cat $1-current-lines-count.txt' - 'cat $1-last-lines-count.txt' > $1-new-lines-count.txt
# Save current line count for next call
mv -f $1-current-lines-count.txt $1-last-lines-count.txt
# Output only new lines, if any
tail -'cat $1-new-lines-count.txt' $1
[user@system test]$ cat input.txt
a
b
c
[user@system test]$ ./find-new-lines input.txt
a
b
c
[user@system test]$ ll
insgesamt 16
-rwxrwxr-x 1 user user 304 30. Jan 11:33 find-new-lines
-rw-rw-r-- 1 user user 6 30. Jan 10:42 input.txt
-rw-rw-r-- 1 user user 2 30. Jan 12:30 last-lines-count-input.txt
-rw-rw-r-- 1 user user 2 30. Jan 12:30 new-lines-count-input.txt
[user@system test]$ ./find-new-lines input.txt
[user@system test]$