.png)
Wie kann ich die Ausgabe eines „selbstaktualisierenden“ Programms filtern und top
gleichzeitig seine Funktionalität intakt halten?
Ich möchte beispielsweise meinen Benutzernamen in top
der Ausgabe von hervorheben. Meine Idee ist, etwas wie das Folgende zu verwenden:
top | grep --color -E "user|$"
Dies funktioniert insoweit, als dass der Benutzername tatsächlich hervorgehoben wird, allerdings steht der Cursor im obersten Programm nicht an der richtigen Stelle und die letzte Zeile fehlt.
Ich habe ähnliche Ergebnisse mit anderen interaktiven Shell-Programmen wie wget (Versuch, den Fortschrittsbalken mithilfe von Escape-Sequenzen hervorzuheben) und rsync erzielt. Wie kann ich die Ausgabe eines interaktiven Programms richtig filtern?
Antwort1
Keine Ahnung, ob das funktioniert (ich habe es noch nie benutzt).
Versuchen Sie grc.
http://korpus.juls.savba.sk/~garabik/software/grc.html
Ich habe es in diesem Beitrag gesehen, wo sie es mit tail -f zum Laufen gebracht haben. Dort werden auch eine Reihe anderer Möglichkeiten erwähnt, die man ausprobieren könnte.
HTH
Etwas verwandten Beispielcode gefunden unter https://unix.stackexchange.com/questions/26313/colored-find-output
habe das „find“ durch „top“ ersetzt und ein bisschen mit der Case-Anweisung herumgespielt, als hätte ich *bigbird*) als Case (meinen Benutzernamen). Das Skript war nicht zufrieden mit mir, aber es hat einige farbige Ausgaben erzeugt (zusammen mit Fehlermeldungen, weil ich es nur zerhackt und nicht richtig codiert habe). Es scheint (zumindest teilweise) ein Proof of Concept zu sein.