[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: