Finalizando a cauda -f depois da impressão n linhas

9

Eu tenho o seguinte.

  1. Um processo de gravação Java registra no arquivo
  2. Um script de shell começando o processo Java.

Eu preciso ler o arquivo de log depois de iniciar o processo Java para verificar a inicialização correta.

Eu tenho tentado com tail -f , mas permanece anexado para sempre. Preciso que tail pare após imprimir n linhas. Existe uma maneira como -n opção para linhas previuos?

    
por theShadow89 21.10.2014 / 12:50

2 respostas

22

Você pode canalizar a saída de tail -f para head para limitar a quantidade de linhas mostradas:

tail -f [PATH] | head -n 100

para mostrar apenas 100 linhas no total.

    
por David Foerster 21.10.2014 / 13:04
6

Novas linhas apenas

Com a planície tail -f , as primeiras 10 linhas são do arquivo como ele já existe:

tail -f file.log | head -30

escreve 10 linhas de log.txt quando é executado e 20 (n-10) linhas são adicionadas posteriormente.

Com um arquivo de log, você normalmente usa -f ( --follow ) para ver as linhas escritas no futuro.

Para ver apenas as 30 linhas que foram gravadas depois que tail foi iniciado, limitar a saída inicial para 0:

tail -f -n0 file.log | head -30
    
por Volker Siegel 21.10.2014 / 17:25