Puede usar tputpara mover el cursor a una línea determinada en la pantalla, por ejemplo,
tput cup 11 0
para moverlo a la duodécima línea (los valores cuentan desde cero).
En la misma línea, puede usar tputpara borrar desde esa posición hasta el final de la pantalla, utilizando la edcapacidad. Combinatorio,
tput cup 11 0 && tput ed
podría ser lo que se quería.
Si desea ir a la mitad de la pantalla, el primer número devuelto por
stty size
es (en la mayoría de los sistemas) el número de filas de la pantalla. Agregando eso al comando:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
El clearprograma difiere de tput ed:
- mueve el cursor a la posición de inicio (arriba a la izquierda) y
- se borra desde ese punto hasta el final de la pantalla.
Advertencia: en algunas plataformas tput edpuede no funcionar debido a problemas solucionados hace mucho tiempo. En esos casos, la actualización de la configuración de curses / ncurses solucionará el problema.
Si el recuento de líneas es impar,
tput cupborra toda la página.escribirlo así debería arreglar eso:
fuente
Si está interesado en limpiar la mitad inferior de la pantalla mientras mantiene el resto, esto funcionará:
EDITAR: para aclarar, si ejecuta
seq $(stty size | cut -d' ' -f1)las otras respuestas, dejará la primera mitad de la salida, mientras que este comando dejará la segunda mitad (es decir, la salida más reciente).fuente