Вывод команды в файл, новые строки вверху

Я переписываю более 20-ти летних сценариев Unix и хочу, чтобы вывод шел на экран и в файл. Я знаю, что это возможно с tee, Есть ли подобная команда, которая укладывает новые строки сверху, в начале файла? Я бы хотел, чтобы файл выводился в обратном хронологическом порядке.

Вывод сценария будет перенаправлен в папку WWW. Для удаленного просмотра вывода я хочу F5 в браузере и иметь новые строки в верхней части окна браузера. Я переработаю файл (cp log log_$(date '+%Y%m%d') && cp /dev/null log) каждый день, чтобы не стать слишком большим.

Я надеялся, что tee была бесплатная утилита, как cat имеет с tacно увы не повезло.

1 ответ

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

Это команда perl, которая должна делать то, что вам нужно:

oldscript.sh | perl -ne '$log=$_.`cat my_log.txt`; open(F, ">", "my_log.txt"); print F $log; print'

Juts изменить путь к my_log.txt для ваших нужд.

Другие вопросы по тегам