Saída de comando para arquivo, novas linhas no topo [duplicado]

-1

Estou reescrevendo alguns scripts Unix de mais de 20 anos e quero que a saída vá para a tela e um arquivo. Eu sei que isso é possível com tee . Existe um comando semelhante que empilha novas linhas no topo, no início de um arquivo? Eu gostaria que o arquivo fosse enviado em ordem cronológica inversa.

A saída do script será redirecionada para uma pasta WWW. Para visualizar remotamente a saída, quero F5 em um navegador e ter novas linhas na parte superior da janela do navegador. Vou reciclar o arquivo ( cp log log_$(date '+%Y%m%d') && cp /dev/null log ) todos os dias para evitar que ele fique muito grande.

Eu esperava que o tee tivesse um utilitário gratuito como cat com tac , mas sem sorte.

    
por user38537 05.03.2015 / 11:01

1 resposta

0

Para imprimir em STDOUT e inserir novas linhas no início do seu arquivo de log você terá que reescrevê-lo completamente cada vez que consiga consumir muita memória.

Este é um comando perl que deve fazer o que você precisa:

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

O juts muda o caminho para my_log.txt para suas necessidades.

    
por Sylvain Pineau 05.03.2015 / 12:19