Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Shell: Mit Date die Daten der letzten Woche bestimmen

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    4

    Question Shell: Mit Date die Daten der letzten Woche bestimmen

    Hallo Community,

    Ich möchte ein Shellscript schreiben das mir die Daten, mithilfe von date, der letzten Woche ausgibt.

    In etwa so:

    11.05.2015
    12.05.2015
    .
    .
    .
    17.05.2015

    Jeweils vom letzten Montag zum letzten Sonntag. Ich habe bis jetzt ein Script das die Daten der letzten Woche ausgibt. Alles gut und schön. Das Problem ist nur, wenn ich das Script Montag ausführe, springt er einen Montag zu weit zurück.

    Heute (18.05.2015) würde er auf den 04.05.2015 statt dem 11.05.2015 springen

    Hier ist mein "Script"

    Code:
    #!/bin/bash
    
    for w in 7 6 5 4 3 2 1; do 
      date -d "last monday -$w days" +%Y%m%d ;
    done

    Kann mir da jemand helfen?
    Ich möchte gerne weiter mit date arbeiten.

    Liebe Grüße
    Cyandy

  2. #2
    Registrierter Benutzer
    Registriert seit
    Sep 2003
    Beiträge
    2.990
    Zitat Zitat von cyandy Beitrag anzeigen
    Ich möchte ein Shellscript schreiben das mir die Daten, mithilfe von date, der letzten Woche ausgibt.
    suchst du sowas:

    for w in 7 6 5 4 3 2 1; do date -d "-$w days" +%Y%m%d; done
    ....

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    4
    Nein...Wenn ich das Script morgen ausführen würde, würde es mir das datum vom letzten Dienstag an angeben.
    Es soll aber fest immer der letzte Montag sein.

  4. #4
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    probier sowas wie
    Code:
    date -d "last Monday"
    date -d "last Monday next day"
    Also irgendwas wie
    Code:
    LANG=C actueller_tag=$( date -d "last Monday")
    LANG=C date -d "$actueller_tag next day"
    Das LANG=C stellt sicher, dass die Datumsangabe in ASCII erfolgt, womit date dann prima umgehen kann.

    oder sowas
    Code:
    LANG=C date -d "last Monday $day_count days"
    Eine positive $day gilt als plus. Negativ geht in die Vergangenheit.

    Für dich also sowas.
    Code:
    for d in {1..6}; do
         date -d "last Monday $d day"
    done
    Das geht auch ohne LANG=C, da hier das Date nicht geparst wird.

    Und natürlich geht auch ne Null:
    Code:
    for d in {0..7}; do
         date -d "last Monday $d day"
    done
    Geändert von BetterWorld (18.05.15 um 15:00 Uhr)

Ähnliche Themen

  1. Daten mit Schlüsseldatei in der shell verschlüsseln
    Von yankeeCGN im Forum Sicherheit
    Antworten: 8
    Letzter Beitrag: 14.03.10, 11:36
  2. Shell Script - Lösche alle Daten der letzten 3 Tage
    Von Ag3nt im Forum Linux Allgemein
    Antworten: 22
    Letzter Beitrag: 19.07.08, 10:02
  3. date im Shell Skript
    Von Los_Andros im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 17.08.06, 09:59
  4. shell letzten befehle löschen
    Von packo im Forum Linux Allgemein
    Antworten: 5
    Letzter Beitrag: 12.08.06, 15:13
  5. Zeichen nach letzten Punkt in Shell Variable ausgeben?
    Von thenktor im Forum Anwendungen Allgemein, Software
    Antworten: 5
    Letzter Beitrag: 16.02.05, 10:58

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •