Datumsstrings älter als x Tage aus Datei löschen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Sisko78, 19.06.2007.

  1. #1 Sisko78, 19.06.2007
    Sisko78

    Sisko78 Jungspund

    Dabei seit:
    24.04.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo,

    ich habe hier eine Datei mit Zeilen, in denen ein Datum enthalten ist (irgendwo mitten drin, Format Year-month-day). Jetzt überlege ich schon ziemlich lange, wie ich das machen kann, dass eine Zeile gelöscht wird, wenn das Datum dieser Zeile älter als meinetwegen 30 Tage ist.
    Einen praktikablen Ansatz habe ich noch nicht gefunden. Was mir jetzt so einfiel:
    Mit sed o.ä. die Datumsstrings in eine Datei
    Dieses Zeilenweise auslesen und irgendwie in ein zu gnu date kompatibles format (%s) bringen, die Differenz zum aktuellen Datum ausrechnen, wenn > 30 Tage dann Zeile irgendwie löschen.

    Naja, da sind noch einige Fragezeichen und irgendwies, deshalb diese Frage an euch.

    Vielen Dank im vorraus

    Gruß
    Sisko
     
  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, 19.06.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Wenn du die Zeile mit dem Datum älter als 30 Tage selbst löschen willst und GNU date hast geht folgender Schnellschuß mit reinen Bash mitteln.
    (du hast keine andere Shell angegeben, deshalb nur die Bashlösung!)
    Hier gebe ich das nur auf STDOUT aus und unterdrücke alle Zeilen, die ein Datum YYYY-MM-DD älter 30 Tage enthalten.
    Ein Lösungsansatz:
    Code:
    $ cat test
    das ist eine datei
    diese Datei hat ein Datum in einer Zeile
    das Datum steht hier 2007-06-01 drinnen.
    Es gibt noch ein altes Datum 2007-05-14 in dieser Zeile.
    der Text geht weiter.
    Ende des Textes.
    $ S=$(date -d"30day ago" +"%s");while read t; do  N=$(echo $t|egrep "[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}"); if [ -z "$N" ];then echo $t; elif [ "$(date -d"$(echo $t|egrep -o "[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}")" +"%s")" -gt $S ]; then echo $t;fi;done <test
    das ist eine datei
    diese Datei hat ein Datum in einer Zeile
    das Datum steht hier 2007-06-01 drinnen.
    der Text geht weiter.
    Ende des Textes.
    
    Wie du siehst ist die Zeile mit dem Datum 2007-05-14 nicht dabei.
    Das Arbeiten mit Tempdateien, Iterieren über Verzeichnisse usw. überlass ich dir.

    Gruß Wolfgang
     
  4. #3 Sisko78, 26.06.2007
    Sisko78

    Sisko78 Jungspund

    Dabei seit:
    24.04.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Sry, hab ein paar Tage nicht mehr hier rein geschaut.
    Vielen Dank für deinen Vorschlag, damit komme ich sicher weiter.

    Gruß
    Sisko
     
Thema:

Datumsstrings älter als x Tage aus Datei löschen

Die Seite wird geladen...

Datumsstrings älter als x Tage aus Datei löschen - Ähnliche Themen

  1. Open365 als Alternative zu Microsofts Office 365

    Open365 als Alternative zu Microsofts Office 365: Open365 ist eine Open-Source-Alternative zu Microsofts Office 365 und Google Drive, die es erlaubt, Dokumente online zu erstellen und Dateien über...
  2. MagicStick erhält Ubuntu Core als Alternative

    MagicStick erhält Ubuntu Core als Alternative: MagicStick ist ein derzeit auf Indiegogo finanzierter PC-Stick, der ein TV-Gerät in einen Smart-TV verwandeln soll. Wegen des großen Erfolgs ist...
  3. FreeBSD entwickelt Systemd-Alternative

    FreeBSD entwickelt Systemd-Alternative: Die Aktivitäten im FreeBSD-Projekt sind seit einem halben Jahr so hoch wie nie zuvor. Der jetzt vorgelegte Statusbericht für die letzten drei...
  4. System XVI: Neuer Servicemanager als Alternative zu Systemd

    System XVI: Neuer Servicemanager als Alternative zu Systemd: Eine Gruppe von Entwicklern hat die Arbeit an einem neuen Servicemanager begonnen. Er soll einige moderne, über Init hinausgehende Funktionen...
  5. Mitveranstalter für den Linux Presentation Day 2015.2 gesucht

    Mitveranstalter für den Linux Presentation Day 2015.2 gesucht: Für den Linux Presentation Day 2015.2, der am 14. November stattfinden soll, werden noch weitere Veranstalter gesucht. Mit dieser Initiative...