Talvez:
tail -n +1 -f file | awk '{printf "\r%lu", NR}'
Tenha em atenção que o resultado seria um número para cada linha de entrada (apesar de substituir o valor anterior se enviado para um terminal).
Ou você pode implementar o tail -f manualmente no shell:
n=0
while :; do
n=$(($n + $(wc -l)))
printf '\r%s' "$n"
sleep 1
done < file
(observe que ele executa até um comando wc e um sleep por segundo que nem todos os shells criaram. Com ksh93 , enquanto sleep está embutido, para obter um wc integrado ( pelo menos no Debian), você precisa adicionar /opt/ast/bin na frente de $PATH (independentemente de existir ou não esse diretório) ou usar command /opt/ast/bin/wc (não pergunte ...)).
Você pode usar pv , como em:
tail -n +1 -f file | pv -bl > /dev/null
Mas cuidado, pois ele adiciona k , M ... sufixos quando o número é superior a 1000 (e não parece haver uma maneira de contornar isso ).