Date Problem einen Tag abziehen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mehlbox, 26.11.2007.

  1. #1 mehlbox, 26.11.2007
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen,

    habe ein Script Problem mit date ich möchte vom aktuellen Datum einen Tag abziehen und dieses in eine Variable schreiben und diese Variable dann benutzen um aus einer Datei Daten mit dem "reduzierten Datum" rauszulesen.

    Habe leider keine Ahung vom Programmieren kann mir hier einer weiterhelfen.

    Vielen Dank
     
  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 tuxlover, 26.11.2007
    Zuletzt bearbeitet: 26.11.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    Code:
    DATE_DAY=$(date +%d)
    YESTERDAY=$(( $DATE_DAY - 1 ))
    
    hilft dir das erst einmal weiter?
     
  4. #3 Wolfgang, 26.11.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Du solltest schon schreiben welche Shell du zur Verfügung hast.
    Nicht überall ist GNU-Date vorhanden.
    Desweiteren ist es interessant, wie du das Format willst.
    Datum von gestern mit GNU Date:
    Code:
    #Defaultformat:
    VAR=$(date -d"1 day ago");
    echo $VAR
     Sun Nov 25 13:53:21 CET 2007
    
    Man date
    Gruß Wolfgang
     
  5. #4 mehlbox, 26.11.2007
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo tuxlover,

    danke genau so brauchte ich es

    Vielen Dank

    Schönen Tag noch
     
  6. Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Hi ich nutze auch ein script (bash) mit einer date Variable.
    Mein Problem ist das die dateien die ich kopieren möchte die endung test.(Tag Nr.) haben, z.b.
    für heute.

    Mein script macht aber aus der "006" nur eine "6":

    #echo $YESTERDAY
    #6

    Resultat ist: test.6: No such file or directory
     
  7. #6 bytepool, 07.01.2008
    Zuletzt bearbeitet: 07.01.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    hi,

    mit printf kannst du das formatieren wie du willst.

    edit: Beispiel:
    Code:
    i=5
    printf "%.3i" $i
    
    Kann auch sein dass man %d statt %i verwenden sollte, weiss ich grad nich, aber die idee sollte klar sein.

    mfg,
    bytepool
     
  8. #7 Wolfgang, 07.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ich weiß ja nicht, was dein Skript da macht. Aber aus einem Dateinamen test.007 die Nullen mit auszugeben ist keine Zauberei.
    Code:
    a=test.007; 
    echo ${a##*\.}
    007
    
    Printf stimmt als Alternative, allerdings mit
    Code:
    $ printf "%[b]0[/b]3d\n" 7
    007
    
    denn...
    Code:
    $ printf "%3d\n" 7
      7
    
    ;)

    Gruß Wolfgang
     
  9. #8 bytepool, 07.01.2008
    Zuletzt bearbeitet: 07.01.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Naja, deswegen ja der "." vor der 3. Bei 'floats' gibt das 3 Nachkommastellen, aber da 'ints' keine Nachkommastellen haben, heisst das dass er mindestens 3 Zahlen ausgeben soll.
    Aber ich gestehe, ich war einfach zu faul nachzugucken wie es richtig ist ;)

    mfg,
    bytepool
     
  10. #9 Wolfgang, 07.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ist doch nicht das Problem, nur wenn ich Fließkomma mit integer verwende, (den Punkt habe ich ehrlicherweise übersehen) bekomm ich Magenkrämpfe. ;)

    Gruß Wolfgang (der wohl manchmal zu konservativ penibel ist)
     
  11. Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Ich glaube ihr hab das was miss verstanden.
    Die Dateien werden jeden Tag um Mitternacht fertig geschrieben (sind sowas wie Log files).
    Um 02.00 möchte ich sie von den Ziel Servern auf einen Server kopieren.
    Die Dateinamen sind also test.[1-365], jeden Tag eine andere Endung.
    Z.B.
    test.001
    test.002
    test.014
    test.365

    Hier noch die Zeile die wichtig ist:
    und die Variable:

    DAY=`date +%j`
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 bytepool, 08.01.2008
    Zuletzt bearbeitet: 08.01.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Mhh, ich habe eher das Gefuehl dass es genau andersrum ist... Wir haben dir doch schon 2 verschiedene Loesungen gegeben, wo ist das Problem?

    edit:
    Achso, Wolfgangs erster Vorschlag passt nicht direkt auf das Problem das stimmt. Aber ich kenne mich mit variable expansion auch (noch) nicht aus und kann da nicht soviel zu sagen ;)
    Aber es hilft im uebrigen wenn du ein wenig Beispiel code mitliefert, das macht das Verstaendnis normalerweise einiges einfacher ;)
    Trotzdem, mit printf kriegst du das genauso hin wie du das willst, und wahrscheinlich geht's auch mit variable expansion...

    mfg,
    bytepool
     
  14. #12 Wolfgang, 08.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Eben schonmal einen Thread weiter gehabt ...

    Code:
    scp root@XXX.XXX.XXX.XXX:/var/test.$(date -d"yesterday" +%j) .
    
     
Thema: Date Problem einen Tag abziehen
Besucher kamen mit folgenden Suchen
  1. shell datum von gestern

    ,
  2. SQL einen tag abziehen

Die Seite wird geladen...

Date Problem einen Tag abziehen - Ähnliche Themen

  1. Fedora mit Problem bei Paket-Updates

    Fedora mit Problem bei Paket-Updates: Die Paketverwaltung von Fedora 21 weist einige Fehler auf, die den Standardweg des Paket-Updates scheitern lassen können. Auf der Kommandozeile...
  2. Exe-Dateien stoppen im Router führt zu Problemen

    Exe-Dateien stoppen im Router führt zu Problemen: Hier meine Routereinstellungen. Dort kann ich exe-Dateien scheinbar sperren, also deren heimlichen Download auf unsere Rechner verhindern. Und...
  3. Probleme beim Ubuntu-Update

    Probleme beim Ubuntu-Update: Bei der Aktualisierung von Ubuntu 13.04 auf die neueste Ubuntu-Version 13.10 kann es unter bestimmten Konstellationen zu Problemen kommen....
  4. Datensicherung: stranges I/O Problem

    Datensicherung: stranges I/O Problem: Moin, ich hab hier gerade nen wXP maschine stehen, die ziemlich abgeraucht ist. Problem scheint zu sein das beim Zugriff auf den Hauptuser...
  5. Textdatei / AWK / Leerzeichen - Problem

    Textdatei / AWK / Leerzeichen - Problem: Hi liebes Forum, vielleicht könnt ihr mir bei einer kleinen Shell-Geschichte helfen, da ich kein Programmierer bin, und auf der Shell noch recht...