uhrzeit aus file auslesen und mit akt. zeit vergleichen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von epios_newbie, 02.11.2005.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #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
     
  4. #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?
     
  5. #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.
     
  6. #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. 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....