Tenho alguns comandos que estou executando no terminal que geram tudo o que fazem, o que é ótimo, mas não preciso que minha janela inteira seja preenchida com milhares de linhas de entrada. Existe uma maneira de fazer com que apenas o último número x de linhas geradas seja exibido e o restante seja removido?
Responder1
Você pode usar o comando tail. Ele listará apenas as últimas linhas de um arquivo, especificado pelo usuário. Também listará apenas as últimas linhas em tempo real, se desejar. tail -n 5 imprimirá as últimas 5 linhas. Basta fazer man tail para obter outras opções.
Responder2
Sem saber para quais comandos você está vendo muita saída, posso dizer que você pode limitar a quantidade de linhas emitidas no terminal com o comando tail usando um "pipe" para enviar a saída do primeiro comando para o segundo comando. Um exemplo seria:
ls | tail -n 5
Em vez de enviar a saída do comando ls para a tela, ele a envia (ou canaliza) para o comando tail. O comando tail aqui imprimirá as últimas 5 linhas da saída ls devido à especificação de "-n 5".
Responder3
A saída do console são apenas linhas escritas uma por uma em um fluxo de saída (saída padrão ou erro padrão). As janelas do console e os aplicativos de terminal apenas os exibem, rolando os anteriores para cima. Eles não podem apagar nenhuma linha já impressa. Você precisa:
- Um aplicativo de console/terminal com a capacidade integrada de omitir todos, exceto o últimonlinhas ao redesenhar ao receber uma nova linha; isso pode ser possível, mas não sei como.
- Um aplicativo adicional que pode fazer isso, iniciado no console como um wrapper para seu aplicativo;
screen
etmux
provavelmente posso fazer isso, mas não sei como. Um aplicativo que pode fazer isso para o qual você canaliza a saída do console do seu aplicativo;
multitail
caberá aqui, por exemplo:find | env LINES=10 multitail -j
exibirá a saída de
find
, nunca mostrando mais de 10 linhas de uma vez.
Você não declarou o sistema operacional em que está, mas multitail
está disponível para Linux, por exemplo, como um pacote Ubuntu.