Uniksowy „ogon”, który czyści ekran po obcięciu?


1

Używanie tail -Fdo śledzenia pliku, który może jeszcze nie istnieć, i działa w skrócie w następujący sposób:

tail: cannot open `mylog.log' for reading: No such file or directory
tail: `mylog.log' has appeared;  following end of new file
run1
run1
run1
tail: mylog.log: file truncated
run2
run2
run2

Chcę tylko zobaczyć wyniki bieżącego przebiegu, ponieważ wiele przebiegów mieści się na ekranie i trudno jest powiedzieć, gdzie jeden się zatrzymuje, a zaczyna następny. Przed wykonaniem biegu używam

rm mylog.log; clear && tail -F mylog.log

Ale muszę pamiętać, aby to zrobić przed każdym biegiem. Zdaję sobie sprawę, że jeśli tailwyczyści ekran, gdy nastąpi obcięcie, dałoby mi to dokładnie takie zachowanie, jakie chcę, bez konieczności interakcji ze mną.

tailStrona człowiek nie wydają się wskazywać na to było możliwe. Jestem pewien, że nie mogę być pierwszym, który pragnie takiego zachowania, czy ktoś inny użył innych środków, aby to osiągnąć?

Odpowiedzi:


5

Ten fragment kodu będzie działał:

tail -F $LOGFILE 2>&1 | sed -e "$(echo -e "s/^\(tail: .\+: file truncated\)$/\1\e[2J/")"

1
Co ciekawe, nie myślałem o przesyłaniu wyników długo działającego programu przez sed. Wygląda na to, że to działa, dzięki!
Jason Viers,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.