Hallo Bernd, * Bernd Tannenbaum schrieb am 08.Jul.2003:
Die Aufgabe: Log-Dateien, die ein Tagesdatum im Namen tragen, sollen ausgewertet werden. Und zwar immer die Dateien des Vortages.
Das bringt mich ein wenig in Schwierigkeiten. Ich erhalte über date zwar das aktuelle Datum, kann so aber schlecht einen Tag zurückrechnen. Ich habe in dunkler Erinnerung, das es eine Art Counter in Unix gibt, der die Sekunden ab einem bestimmten Tag um die 1970 oder so zählt. Gibt es den wirklich und könnte ich den benutzen, indem ich dann die Sekunden eines Tages einfach abziehe?
Viel einfacher: Hat zwar nichts mit einem Skript zu tun, aber das was Du willst, bringt das GNU-date von zu Hause her mit. date --date '-1 day' oder auch date --date '1 day ago' und es wird das Datum von gestern angezeigt. Siehe hierzu info date
Meine Idee wäre halt, das momentane Datum zu erfragen, einen Tag zurückzurechnen und das ganze in einen String zu basteln, der von der Form her dem Namen der Log-Dateien ähnelt: bla_blub_01072003.txt Also etwa: 01072003
Das machst Du denn mit: date --date '-1 day' '+%d%m%Y' Siehe hierzu info date, oder auch date --help Allerding stellt sich die Frage, ob das Datum in diesem Format sinnvoll ist. Viel besser in Dateinamen ist doch das Datum nach ISO, also zuerst das Jahr, dann der Monat, dann der Tag. So hast Du es einheitlich von groß nach klein. Also zuerst das Jahrtausend, dann das Jahrhundert, dann das Jahrzehnt, dann das Jahr, dann die Zehner Monatsstelle, dann die Einer Monatsstelle, dann die Tagesdekade, dann der Tag und das kann man gut sortieren. Weil es eine fixe Länge hat, braucht man noch nichteinmal numerisch zu sortieren. Alphabetisch reicht völlig. So wie Du es vorgeschlagen hast, also zu erst den Tag, dann den Monat und zum schluß das Jahr, da ist doch alles durcheinander. Es ist in den einzelnen Feldern ja so, daß die größere Stelle vorne steht, wie bei Zahlen üblich. Ein Datum nach ISO machst Du folgendermaßen: (immer Datum von gestern) date --date '-1 day' '+%Y%m%d' oder wenn Du - zwischen den einzelnen Teilen haben willst: date --date '-1 day' '+%Y-%m-%d' mit den - ist der ISO-Regelfall, ohne ist aber auch erlaubt. Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12