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 ).