Was ist der beste Befehl, um einen Zeitstempel in ein lesbares Datum zu ändern, wenn eine Protokolldatei mit einem "Tail" versehen wird?

2

Ich habe ein Programm, das sich wie folgt anmeldet:

1324218770.7644 INFO usw

Welches ist das beste Linux-Shell-Programm, um die Zeitstempel in ein für Menschen lesbares Format wie Sun 18 Dec 2011 15:32:50 CET umzuwandeln ?

Ich kann so durchpfeifen

| cut -f 1 -d\   | awk '{print strftime("%c",$1)}'

Nur für die Zeitstempel, aber wie pflege ich den Rest der Zeile?

Keith
quelle

Antworten:

2

einfach überschreiben $1, dann alle Zeilen drucken

$ echo '1324218770.7644 INFO etc' | awk '{$1=strftime("%c", $1); print}'
kev
quelle
2

Ich gehe davon aus, dass Sie möchten, dass das Datum inline geändert und der Rest der Zeile ebenfalls gedruckt wird. Versuchen Sie, Feld 1 durch die Ausgabe von zu ersetzen strftime().

$ echo "1234218770.7644 INFO etc' | awk '{$1=strftime("%c", $1); print}'
Mon 09 Feb 2009 05:32:50 PM EST INFO etc
Arcege
quelle
% s gibt mir den Zeitstempel - Vielleicht ist es eine Awk-Version.
Keith
Nee. Soll %cbeim Kopieren vom Terminal eingegeben werden. Danke für den Fang.
Arcege
Wie haben Sie die Ausgabe erhalten? Ihre Zitate sind in der echoAussage irgendwie durcheinander .
Jaypal Singh