Re: Epoch time konvertieren
Am Montag, 30. Januar 2017, 13:58:54 CET schrieb Chinatinte:
> Am Mon, 30 Jan 2017 13:06:53 +0100
>
> schrieb Michelle Konzack <linux4michelle@gmail.com>:
> > On 2017-01-30 12:34:11 Chinatinte hacked into the keyboard:
> > > Besten Dank. Nächste "Ich-stehe-auf-dem-Schlauch"-Frage: Wie schaffe
> > > ich es nun aber, die Epoch-Time durch "normale" Zeit zu ersetzen?
> > > Wenn ich Dein Script laufen lasse (sh timechange.sh logfile.txt)
> > > passiert nix.
> >
> > Oops, war wohl nicht ausgeschlafen!
> >
> > Hier nochmal vollstaendig:
> >
> > ----[ /home/michelle.konzack/bin/epoch2date
> > ]--------------------------- #!/bin/bash
> >
> > if [ -n "$1" ]
> > then
> >
> > while read LINE
> > do
> >
> > DATE08=$(echo "${LINE}" |cut -d "|" -f8 |date --rfc-822)
[…]
> Besten Dank - allerdings gibt date --rfc-822 das aktuelle Datum aus,
> nicht das konvertierte :) Da bin ich jetzt doch gleich ein wenig
> erschrocken...! :)
[…]
> Wenn ich das richtig verstehe, werden hier die Epoch-Zeiten nicht an
> date weitergegeben. date -Rd@5242880 ergibt Mon, 02 Mar 1970 17:21:20
> +0100
Ja, date nimmt offenbar keine Standard-Eingabe entgegen.
date -d funktioniert übrigens auch nicht so einfach, wie von Dir beschrieben:
~> date -d 1383256791
date: ungültiges Datum „1383256791“
So funktioniert es:
~> date -d "1970-01-01 UTC + $( echo 1383256791 ) seconds"
Do 31. Okt 22:59:51 CET 2013
Oder auch:
~> date --rfc-822 -d "1970-01-01 UTC + $( echo 1383256791 ) seconds"
Thu, 31 Oct 2013 22:59:51 +0100
Statt echo dann halt den cut-Befehl in $( ) rein. $( befehl ) führt den
angegebenen Befehl aus und packt die Ausgabe direkt an dieser Stelle auf die
Befehlszeile.
Ich würd allerdings wohl auch eher awk verwenden, wenn ich mir diese Bastelei
da anschaue.
Ciao,
--
Martin
Reply to: