Shell-Datumsumrechnung / wie kann ich mir mit date, mir das Datum as Unixtimestamp ausgeben lassen?



  • Hallo,

    ich habe eine Software, die Dateinen verarbeitet, ich habe den Quellcode nicht, das Ding steht 😉
    Ich möchte ihn dazu bringen meine Dateinen auch zu bearbeiten, dafür muss ich das Datum (now()) in Sekunden umrechnen, ausgehend vom 1.1.1970 00:00:00 ...

    Zum Beispiel ist: 21.02.2008 15:46:00 ergibt 1203608760 ...

    Das soll so aussehen, dass ich das Datum übergebe und er mit die Zahl ausspuckt.

    ich bräuchte eine Möglichkeit das in der Shell auszurechnen, oder ein kleines C - Programm.

    edit: wie kann ich mir mit date, mir das Datum as Unixtimestamp ausgeben lassen?

    Danke für Eure Hilfe.

    Alex



  • Versuch mal:

    date +%s
    

    Gruß mcr

    EDIT: ich bin mir gerade gar nicht mehr so sicher, ob du die aktuelle Zeit meintest.



  • Hier noch ein Tip:

    mit

    ls --full-time  | awk '{printf("%s %s %s\n", $6, $7, $8)}'
    

    Bekommst du einen Zeitstring pro Datei.
    Jeden dieser Strings kannst du dann mit

    date -d 'string' +%s
    

    in deine gewünschte Zahl umwandeln.

    Bsp:
    ls -l liefert:

    -rw-r--r-- 1 mcr mcr  6574  6. Feb 15:06 geb.tex
    

    ls --full-time liefert:

    -rw-r--r-- 1 mcr mcr  6574 2008-02-06 15:06:46.000000000 +0100 geb.tex
    

    Die obere Zeile liefert:

    2008-02-06 15:06:46.000000000 +0100
    

    und die gewünschte Anzahl an Sekunden erhälst du durch:

    date -d '2008-02-06 15:06:46.000000000 +0100' +%s
    

    Ergebnis:

    1202306806
    

    So, wie du das jetzt zusammel bastelst, überlasse ich dir.

    Gruß mcr



  • Hallo MCR,

    danke für deine Tipps, ich habe es vieel einfach gelöst, auf dem Server ist ein Perl-Interpreter am laufen, also kann ich sagen:

    shell-code

    UXDATE=`perl -e 'print time'`
    

    Schon hatte ich die Sekunden sein 1970 in der Variable und mit der konnte ich mit sed das Datum in einer Vorlagen Datei ersetzen.

    Ich habe heut Vormittag das Skript gecoded und es funktioniert perfekt.

    Danke für deine Hilfe.

    Gruss Alex



  • Ach so, die aktuelle Zeit kannst du auch mit date in sec bekommen.
    Aber das hatte ich ja schon vorher geschrieben gehabt.

    Gruß mcr


Anmelden zum Antworten