Vergleichen von Daten in einer Liste

Vergleichen von Daten in einer Liste

Ich habe also eine Liste mit Daten und muss ein Skript entwickeln, das fortlaufend zählt, wie viele Daten älter als 14 Tage sind ( date --date="14 days ago" +%Y%m%d). Ich bin mir nicht sicher, wie ich die Datumsprüfung über eine Datei durchführen kann. Die meisten Recherchen, die ich finde, zeigen mir, wie ich an Zeitstempel komme, aber das ist nicht das, was ich erreichen möchte.

20160517
20160518
20160519
20160520
20160521
20160522
20160523
20160524
20160525
20160526
20160527
20160528
20160529
20160530
20160531
20160601
20160602
20160603
20160604
20160605
20160612
20160612
20160615
20160615
20160615
20160615
20160615
20160615

Antwort1

Angenommen, es gibt eine Datei mit dem Namen, datesdie eine Liste der Daten enthält, ein Datum pro Zeile (und sonst nichts), dann könnte etwa Folgendes funktionieren, um die Daten zu zählen, die älter als 14 Tage sind:

$ date=$(date --date="14 days ago" +%Y%m%d)
$ awk '($0 < "'$date'") {count += 1} END {print count}'  < dates
20

(Da das Format stimmt yyyymmdd, ist der Vergleich einfach.)

verwandte Informationen