Re: Epoch time konvertieren
Stefan Klein schrieb am 30. Jan um 12:20 Uhr:
> Am 30. Januar 2017 um 11:29 schrieb Chinatinte <chinatinte@gmx.ch>:
> > ich habe ein 115 M grosses Logfile, dessen einzelnen Zeilen so
> > strukturiert sind:
> >
> > 0|/2/System/Library/CoreServices/ManagedClient.app/Contents/PlugIns/phd.profileDomainPlugin|187735|d/drwxr-xr-x|0|0|0|1472862950|1379204098|1383254649|1379204098
> >
> >
> >
> > Die letzten vier Einträge sind jeweils ein Zeitstempel in Epoch-Time.
> >
> > Ich versuche, diese Zeitstempel in Human Readable Time umzuwandeln.
> >
> > date -d 1383256791 ist klar.
> >
> > Aber: Wie schaffe ich es, dies in einem Rutsch zu machen? Als
> > bash-Neuling bin ich hier um jeden Tip und Hinweis dankbar.
>
> Alternativ zur shell kannst du auch awk verwenden z.B.:
>
> $ awk -F'|' '{print strftime("%H:%M:%S",$8)}' < datei
>
> Je nachdem was du sonnst noch mit der Logdatei machen möchtest ist
> vielleicht sogar eine mächtigere Sprache angebracht.
An awk hatte ich auch gedacht. Meine Variante:
#!/usr/bin/gawk -f
BEGIN { FS = "|" }
BEGIN { OFS = "|" }
{ for (n=8;n<=11;n++) $n=strftime("%c",$n) ; print $0 }
Gruß
Christian
--
Christian Knoke * * * http://cknoke.de
* * * * * * * * * Ceterum censeo Microsoft esse dividendum.
Reply to: