PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : awk Ausgbe in Datei umgeleitet. Merkwürdiges Phänomen



zagadka
10-03-2015, 09:31
Hallo, folgende Zeile funktioniert in der Shell einwandfrei und bringt das erwartete Ergebnis:


iostat -xnMt 1 | gawk '{now=strftime("%Y-%m-%d %T "); print now $0}'

Ausgabe in eine Datei umleiten:


iostat -xnMt 1 | gawk '{now=strftime("%Y-%m-%d %T "); print now $0 >> "iostat.log"}'

Keine Ausgabe in die Datei und im Terminal wie erwartet auch nicht.

Lösche ich die Datei iostat.log und setze den Befehl ohne zeitliche Wiederholung ab. Wird also nur einmal ausgeführt funktioniert das.


iostat -xnMt | gawk '{now=strftime("%Y-%m-%d %T "); print now $0 >> "iostat.log"}'

Dann wieder mit zeitlicher Wiederholung funktioniert ebenfalls. Die Datei wird wie gewünscht gefüllt.


iostat -xnMt 1 | gawk '{now=strftime("%Y-%m-%d %T "); print now $0 >> "iostat.log"}'

Bricht man den Befehl ab und startet ihn erneut passiert wieder gar nichts.

Irgendwie schwer zu verstehen. OS ist hier Solaris. iostat alleine umzuleiten ist kein Problem. Evtl. ist das eine Macke beim gawk?

fork
19-03-2015, 20:52
iostat -xnMt 1 | gawk '{now=strftime("%Y-%m-%d %T "); print now $0 >> "iostat.log"}'


Ich weiss ja nicht, ob gawk auch mit Umlenkungszeichen umgehen kann, aber ich würde das
mit der Shell machen. Sprich die Umlenkung ausserhalb der gawk-Befehle, also so:



iostat -xnMt 1 | gawk '{now=strftime("%Y-%m-%d %T "); print now $0}' >> iostat.log