Unix "хвост", который очищает экран при усечении?

1332
Jason Viers

Использование tail -Fдля отслеживания файла, который может еще не существовать, и он работает через усечения, следующим образом:

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 

Я только хочу увидеть вывод текущего прогона, так как на экране помещается несколько прогонов, и трудно сказать, где один останавливается и начинается следующий. Перед выполнением пробега я использую

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

Но я должен помнить, чтобы делать это перед каждым пробегом. Я понимаю, что если tailочистить экран, когда произойдет усечение, это даст мне именно то поведение, которое я хочу, не требуя от меня никакого взаимодействия.

tailСтраница человек, казалось, не указывают на это было возможно. Я уверен, что не могу быть первым, кто желает такого поведения, кто-нибудь еще использовал другие средства для его достижения?

1

1 ответ на вопрос

5
whitequark

Этот фрагмент будет работать:

tail -F $LOGFILE 2>&1 | sed -e "$(echo -e "s/^\(tail: .\+: file truncated\)$/\1\e[2J/")" 
Интересно, что я не думал о том, чтобы передать результаты длительной программы через sed. Похоже, это работает, спасибо! Jason Viers 13 лет назад 1