uhrzeit aus file auslesen und mit akt. zeit vergleichen

Diskutiere uhrzeit aus file auslesen und mit akt. zeit vergleichen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hihallo, versuche nun seit 2 Tagen ein Script fertigzustellen und komm nicht auf den Trichter! möchte aus einem File die Übergebene Zeit...

  1. #1 epios_newbie, 02.11.2005
    epios_newbie

    epios_newbie Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Hihallo,
    versuche nun seit 2 Tagen ein Script fertigzustellen und komm nicht auf den Trichter!

    möchte aus einem File die Übergebene Zeit auslesen und mit der Aktuellen Systemzeit
    vergleichen.
    in dem file wakeup steht drin: (bin zu dusselig zu kopierne tippe deshalb)

    1. zeile frei
    2. zeile sinnloser quatsch
    3. zeile steht drin:
    sudo /usr/sbin/nvram-wakeup -A -C /etc/nvram-wakeup.conf -s `date -d "$radio 09:30:00" +%s'
    (die 09:30:00 ist die übergebene einschaltzeit) die zeile ist immer exakt gleich lang

    die zeit 09:30:00 will ich als variable schaltzeit in meiner test.sh "einlesen", die doppelpunkte entfernen um
    dann das (als zahlenwert ) mit der
    uhrzeit=`date +%H%M%S`
    in einer
    if ["$uhrzeit" -gt "$schaltzeit"]
    then ....
    fi
    auszuwerten.

    das problem ist , ich kann zwar die 3. zeile mittels
    schaltzeit=$(sed -n "3 p" wakeup)
    einlesen
    ich scheitere jedoch am extrahieren der 09:30:00 !!!
    expr substr geht nicht , es kommt immer Error , denke mal wegen der leerzeichen und " und ` in der zeile ??? ?

    1. idee: wie kann ich diese zeile dennoch extrahieren ?
    2. idee: kann ich mittels sed gleich nur die 09:30:00 oder besser gar 093000
    erhalten ..?

    bin inzwischen wirklich ratlos ...
     
  2. #2 Wolfgang, 02.11.2005
    Zuletzt bearbeitet: 02.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    aus der Zeile
    sudo /usr/sbin/nvram-wakeup -A -C /etc/nvram-wakeup.conf -s `date -d "$radio 09:30:00" +%s'
    nur 093000 zu bekommen sollte damit mit allen sed-Versionen

    gehen:
    Bitte immer dazu schreiben welche du nutzt, da es so viele verschiedene gibt.
    Code:
    
    echo "\'sudo /usr/sbin/nvram-wakeup -A -C /etc/nvram-wakeup.conf -s \`date -d \"$radio 09:30:00\" +%s\`\'"|sed -e 's/[-'"'"'  $ :"\.`%+/[:alpha:]]//g'
    
    HTH
    Gruß Wolfgang
     
  3. #3 epios_newbie, 03.11.2005
    epios_newbie

    epios_newbie Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Version und noch ein Fehler drin?

    Hallo,
    erst mal danke für die super schnelle Antwort.

    ich verwende GNU sed version 4.1.4

    dass die 09:30:00 je nach übermitteltem Script immer wechselt hast du berücksichtigt? ( wenn ich eine sendung zu einer andereen zeit aufzeichnen will erscheint da z.b. 20:30:00 oder sonst eine zeit ...)


    also ich habe das abgetippt in mein shell script test.sh
    sowohl als
    echo ...... ( exakt dein ausdruck)
    als auch

    a= echo......
    echo $a

    als Fehlermeldung kommt ( das script hat momentan 10 zeilen!)
    test: line 11: syntax error: unexpected end of file

    wieso muss ich sed nicht "sagen" dass er in zeile 3 nachsehen muss ?
    und ...ich muss doch sed "sagen" dass er im file /user/player/wakup nachgucken soll?
     
  4. #4 Wolfgang, 03.11.2005
    Zuletzt bearbeitet: 03.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Natürlich musst du deinem sed sagen, in welcher Zeile gesucht werden soll.
    Ich habe dir lediglich den REGEXP für deinen Fall gepostet.
    Aber wenn z.B. in test1 steht:
    $cat test1
    zeile1
    Zeile2
    'sudo /usr/sbin/nvram-wakeup -A -C /etc/nvram-wakeup.conf -s `date -d " 20:30:00" +%s`'

    Dann bringt mir das folgende genau was du wünscht:
    Hier gehe ich mal auch auf die Zeile 3 ein:
    Code:
    sed -e '3!d{s/[-'"'"'  $ :"\.`%+/[:alpha:]]//g}' test1
    

    $ sed -e '3!d;{s/[-'"'"' $ :"\.`%+/[:alpha:]]//g}' test1
    203000


    Ich gehe davon aus, dass die Befehlszeile mit sudo... in ' steht!

    Gruß Wolfgang

    PS die Kurzform (geht aber nicht mit allen sed-Versionen):

    sed -e '3!d;{s/[^[:digit:]]//g}' test1

    Funktioniert hier, weil keine weiteren Ziffern in der Zeile vorkommen.
     
  5. #5 epios_newbie, 03.11.2005
    epios_newbie

    epios_newbie Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    5
    Zustimmungen:
    0
    es klappt - super -

    es klappt ... es klappt wirklich !!!
    die erste zeile zaubert mir noch '093000'
    die zweite jedoch , die kurzform .. das "is es" !
    result 093000
    perfekt. ich hätte das ohne deine hilfe nicht hinbekommen.
    1000 dank.
    der rest war ein "kinderspiel"
    funktion läuft schon.

    wie wäre denn der befehl bei gewünschtem result
    09:30:00
    gewesen ??
    dein code :
    sed -e '3!d{s/[-'"'"' $ :"\.`%+/[:alpha:]]//g}' test1
    result '093000'
    dein code :
    ???
    result 09:30:00
    (ich wills ja auch "kapieren" ;-)
    grüße stefan
     
Thema: uhrzeit aus file auslesen und mit akt. zeit vergleichen
Besucher kamen mit folgenden Suchen
  1. perl uhrzeit vergleichen

    ,
  2. linux uhrzeit vergleichen

Die Seite wird geladen...

uhrzeit aus file auslesen und mit akt. zeit vergleichen - Ähnliche Themen

  1. Uhrzeit vergleich

    Uhrzeit vergleich: Hallo zusammen, bin ein blutiger anfänger was Shell-Skripte angeht und hab folgendes Problem: Ich möchte mit dem untenstehenden Skript die...
  2. Sortieren von Datum und Uhrzeit

    Sortieren von Datum und Uhrzeit: Hi zusammen, ich möchte Dateinhalte nach Zeit ausgeben lassen: [25/Jan/2011:18:27:59 String1 [25/Jan/2011:18:27:59 String2...
  3. awk/sed Zeilen bei der Uhrzeit 3 Minuten auseinanderliegt löschen

    awk/sed Zeilen bei der Uhrzeit 3 Minuten auseinanderliegt löschen: Hallo Leute, ich habe ein Problem mit einer Logdate. Ich prüfe mit einem Skript das ich laufen lasse alle 3 Minuten ob ein System noch online...
  4. Datum/Uhrzeit in Datei einfügen mit Emacs

    Datum/Uhrzeit in Datei einfügen mit Emacs: Gelöst: Datum/Uhrzeit in Datei einfügen mit Emacs Hallo zusammen, ich suche nach einer Möglichkeit mit Emacs in einer Datei das momentane...
  5. ntpdate -> Uhrzeit um 7 Minuten voraus

    ntpdate -> Uhrzeit um 7 Minuten voraus: Hallo, ich habe ein komisches Phänomen. WEnn ich die Uhrzeit bei meinem System über NTPdate einstellen möchte, macht er das ganz super....