Вывод команды в файл, новые строки вверху
Я переписываю более 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
для ваших нужд.