Você pode usar tput
para mover o cursor para uma determinada linha na tela, por exemplo,
tput cup 11 0
para movê-lo para a décima segunda linha (os valores contam de zero).
Na mesma linha, você pode usar tput
para limpar essa posição até o final da tela, usando o ed
recurso Combinando,
tput cup 11 0 && tput ed
pode ser o que se queria.
Se você quiser ir para a marca intermediária na tela, o primeiro número retornado por
stty size
é (na maioria dos sistemas) o número de linhas da tela. Adicionando isso ao comando:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
O clear
programa difere de tput ed
:
- move o cursor para a posição inicial (canto superior esquerdo) e
- limpa a partir desse ponto até o final da tela.
Advertência: em algumas plataformas, tput ed
pode não funcionar devido a problemas corrigidos há muito tempo. Nesses casos, atualizar a configuração de maldições / ncurses corrigirá o problema.
Se a contagem de linhas for ímpar,
tput cup
a página inteira será limpa.escrevê-lo assim deve corrigir isso:
fonte
Se você estiver interessado em limpar a metade inferior da tela enquanto mantém o restante, isso funcionará:
EDIT: Para esclarecer, se você executar
seq $(stty size | cut -d' ' -f1)
as outras respostas sairá da primeira metade da saída, enquanto este comando sairá da segunda metade (ou seja, a saída mais recente).fonte