Können Sie jeder mit tee geschriebenen Zeile das aktuelle Datum und die aktuelle Uhrzeit voranstellen?

1173
user2917346

Ich verwende den Befehl 'tee', um die Ergebnisse eines langen Bash-Befehls in einer Datei zu erfassen.

Kann die Datei, die ich mit tee ausstelle, jeder Zeile den Zeitstempel vorangestellt werden, als die Zeile geschrieben wurde? Ich bin auf der Suche nach einer Lösung, bei der jede Zeile einen anderen Datumszeitwert haben würde ... nicht der gleiche Wert, der in jeder Zeile vorangestellt ist.

Der Grund, warum ich das möchte, ist, dass es sehr nützlich wäre zu wissen, wann jede Zeile später ausgegeben wurde, als ich die Datei durchgelesen habe, um zu verstehen, wo sich die langsamen Bereiche befanden.

4

1 Antwort auf die Frage

3
grawity

Wenn tee etwas nicht kann, leiten Sie es an ein Programm weiter. moreutils hat ein Werkzeug, tsdessen Zweck genau das ist:

$ echo test | ts 02. Februar 13:17:27 Test 

Wenn Sie alles mit einem Zeitstempel versehen möchten, sollte die Verwendung offensichtlich sein:

myapp | ts | tee app.log 

Andere Kombinationen sind möglich; Zum Beispiel, um nur die Bildschirmausgabe oder nur die Protokolldatei mit einem Zeitstempel zu versehen:

myapp | tee app.log | ts myapp | tee >(ts > app.log) myapp | tee /dev/tty | ts > app.log myapp | pee "ts > app.log" "cat" myapp | pee "cat > app.log" "ts" 

(Ja, das letzte ist auch von moreutils.)