Unix Comando para registrar a data e hora da saída de um arquivo, mas com a hora relativa a quando foi iniciada?

3

Existem inúmeros programas (por exemplo, ts in moreutils ) e vários one-liners bash para preceder a saída de um comando / pipe com o timestamp de quando essa linha foi 'impressa'.

No entanto, existe um comando que, para cada linha obtida, imprime o tempo desde o início do comando (e / ou quando viu pela primeira vez uma linha) e a linha atual? Então, ao invés de imprimir a hora atual, vai imprimir quanto tempo desde que o comando começou? (assim como a linha também)

Ao executar comandos que demoram um pouco e emitem muitos resultados, pode ser útil saber há quanto tempo você está analisando.

Seria trivial ativar um comando simples, mas não quero reinventar a roda.

Isso está em um sistema Ubuntu Linux.

    
por Rory 19.07.2012 / 18:50

1 resposta

4

Aqui está uma maneira:

#!/bin/bash
SECONDS=0    # it will already be initialized to zero at the start of the script
while read -r line
do
    echo "$SECONDS: $line"
done < file    # or < <(command)

SECONDS é uma variável que incrementa automaticamente a cada segundo.

    
por 19.07.2012 / 19:05