Réponses:
Vous pouvez utiliser tputpour déplacer le curseur sur une ligne donnée de l'écran, par exemple,
tput cup 11 0
pour le déplacer jusqu'à la douzième ligne (les valeurs comptent à partir de zéro).
Dans le même ordre d'idées, vous pouvez utiliser tputpour effacer de cette position jusqu'à la fin de l'écran, en utilisant la edcapacité. Combiner,
tput cup 11 0 && tput ed
pourrait être ce que l'on voulait.
Si vous voulez aller à mi-chemin sur l'écran, le premier chiffre renvoyé par
stty size
est (sur la plupart des systèmes) le nombre de lignes de l'écran. Ajout de cela à la commande:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
Le clearprogramme diffère de tput ed:
Avertissement: sur certaines plates tput ed- formes, il est possible que certaines fonctionnalités ne fonctionnent pas en raison de problèmes résolus depuis longtemps. Dans ces cas, la mise à niveau de votre configuration curses / ncurses résoudra le problème.
Si le nombre de lignes est impair, tput cupefface toute la page.
l'écrire comme ceci devrait corriger cela:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed
Si vous souhaitez effacer la moitié inférieure de l'écran tout en conservant le reste, cela fonctionnera:
half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed
EDIT: Pour clarifier, si vous exécutez seq $(stty size | cut -d' ' -f1)les autres réponses laisseront la première moitié de la sortie, tandis que cette commande laissera la seconde moitié (c'est-à-dire la sortie la plus récente).