Imprime continuamente a última linha do arquivo para uma única linha no terminal

1

Como posso imprimir continuamente a última linha de um arquivo para uma linha única no terminal?

Os seguintes trabalhos funcionam, mas têm um impacto de alto desempenho.

while true; do tail -1 /tmp/somelog | tr "2" "5"; done
    
por forthrin 15.07.2018 / 13:58

2 respostas

4

tail já tem uma opção -f ( --follow ) para pesquisar arquivos para conteúdo anexado - o truque é evitar que a saída seja armazenada em buffer quando você adiciona um canal para fazer a substituição da linha final:

tail -n1 -f /tmp/somelog | stdbuf -o0 tr '\n' '\r'

Para uma discussão sobre o problema de buffer veja, por exemplo, Piping tail -f no awk

    
por 15.07.2018 / 16:38
0

Use watch :

watch -t -n0.2 tail -n 1 /var/log/apache2/access.log

-t desativa o título

-n é o intervalo de atualização

    
por 16.07.2018 / 17:58

Tags