Purpur
Anmeldungsdatum: 15. Mai 2005
Beiträge: 378
|
Hallo alle, mit | alex@shuttle:~$ date
Di 4. Jan 11:18:10 CET 2022
|
erhalte ich (natürlich) Datum + Uhrzeit. Ich brauche jedoch eine andere Formatierung in der Form: YYYYMMDDHHMMSS ⇒ 20220104111810 Ob das nun eine Zahl oder Text ist, spielt eigentlich keine Rolle. Das Ergebnis brauche ich, um eindeutige Namen für temporäre Dateien zu erzeugen. Kennt jemand von euch dazu einen cleveren Einzeiler? Euch allen eine gutes und gesundes neues Jahr. Grüße Alexander
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14393
|
Purpur schrieb: Ob das nun eine Zahl oder Text ist, spielt eigentlich keine Rolle. Das Ergebnis brauche ich, um eindeutige Namen für temporäre Dateien zu erzeugen.
Dann könntest Du das Datum auch als timestamp benutzen. Siehe z. B. die Ausgabe von:
date +%s
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17630
Wohnort: Berlin
|
Vielleicht ist Lubux Tipp genau das Richtige für Dich, aber vielleicht soll es auch ohne Hilfsmittel entzifferbar sein:
| zeitstempel=$(date "+%Y%m%d%H%M%S")
|
zeigt Dir weitere Alternativen. Du kannst nach Belieben Trenner und Dekoration einbauen, beispielsweise
| date "+%Y.%m.%d_%H-%M-%S"
2022.01.04_12-16-18
|
- das ist Dateinamenfreundlich und besser lesbar, während "2022/01/04" nicht ginge, wegen der Slashes, und "12:19:37" ist schwierig, wenn Du noch Kontakt zu Windowsusern hast, bei denen Doppelpunkte für Partitionsbuchstaben verwendet werden.
|
Purpur
(Themenstarter)
Anmeldungsdatum: 15. Mai 2005
Beiträge: 378
|
Hi lubux, dein Tip führt in die richtige Richtung. Danke dafür. Hi user_unknown, das war es, was ich gesucht habe. Besten Dank für den Schubs. Ein Datenaustausch auf Win-Platformen ist eigentlich nicht vorgesehen. Insofern stünden mir alle Formatierungsvarianten zur Verfügung.
ist jedoch genau das Richtige. Weil der String so schön minimalistisch ist, eindeutig, stets wachsend und deshalb prima sortier- und durchsuchbar. Und sich auch gut für andere Zwecke einsetzen lässt - u.a. als nie gleicher Startparameter zur Erzeugung von Zufallszahlen. Herzlichen Dank euch beiden fürs Mitdenken & Grüße, Alexander
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13231
|
Purpur schrieb:
ist jedoch genau das Richtige. Weil der String so schön minimalistisch ist, eindeutig, stets wachsend und deshalb prima sortier- und durchsuchbar.
Ich würde wenigstens einen Trenner zwischen Datum und Zeit einbauen, es sei denn, es muss rein numerisch sein. Z.B. Und sich auch gut für andere Zwecke einsetzen lässt - u.a. als nie gleicher Startparameter zur Erzeugung von Zufallszahlen.
Das machen Zufallszahlgeneratoren, die was auf sich halten, üblicherweise schon. uuidgen nutzt z.B. /dev/random, das physikalischen Input nutzt (siehe man -s 7 random ).
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17630
Wohnort: Berlin
|
rklm schrieb: Purpur schrieb:
ist jedoch genau das Richtige. Weil der String so schön minimalistisch ist, eindeutig, stets wachsend und deshalb prima sortier- und durchsuchbar.
Es bleibt so eindeutig und sortierbar, wenn Du immer die gleichen Trenner verwendest (und nicht über 8000 Jahre lebst).
Ich würde wenigstens einen Trenner zwischen Datum und Zeit einbauen, es sei denn, es muss rein numerisch sein. Z.B.
Ja. Sobald Du mehr als 1x draufschaust, insbes. im Monat Februar, solltest Du an Ergonomie nicht sparen. An Ergonomie sollte man so gut wie nie sparen!
|
Purpur
(Themenstarter)
Anmeldungsdatum: 15. Mai 2005
Beiträge: 378
|
user_unknown schrieb: ... insbes. im Monat Februar, solltest Du an Ergonomie nicht sparen. Hi user_unknown, Ja, besondere Freude kommt auf am 2., 20. und am 22. Februar 2022 ☺ Zum Thema Übersicht ließ mal hier, da und dort. Wenn du jemanden in den ultimativen Wahnsinn treiben willst, lass ihn damit arbeiten.
Debugging käme dann wohl ZEN recht nahe. Viel Spaß wünscht, Alexander 😇 <edit>
Bildchen beigefügt.
</edit>
- Bilder
|
Nobuddy
Anmeldungsdatum: 2. September 2005
Beiträge: 6990
Wohnort: 29614 Soltau
|
Ich finde den Vorschlag von user_unknown, einfach und eindeutig.
Bei visuellem Überblick, ist eine gute Lesbarkeit (Erkennung) von Vorteil. Du sprichst von temporären Dateien, was hast Du damit letztendlich vor?
Sollen diese dauerhaft gespeichert werden, oder sind diese nur kurzfristig von Bedeutung? Bei langfristiger Speicherung der Dateien in dem Format "zeitstempel=$(date "+%Y%m%d%H%M%S")", ist letztendlich nicht zu erkennen, um was für eine Datei und um welchen Inhalt es sich handelt.
Spätestens hier sollte man sich Gedanken um eine entsprechende Lesbarkeit machen, damit das auch langfristig nachvollziehbar ist und bleibt. Letztendlich, geht es nicht um einen Einzeiler, sondern was Du damit erreichen willst!
|
Purpur
(Themenstarter)
Anmeldungsdatum: 15. Mai 2005
Beiträge: 378
|
Nobuddy schrieb: Ich finde den Vorschlag von user_unknown, einfach und eindeutig.
Das sehe ich ganz genau so. Hatte ich weiter oben ja bereits erwähnt.
Bei visuellem Überblick, ist eine gute Lesbarkeit (Erkennung) von Vorteil.
Da hast du völlig recht. Die Zahl muss jedoch nicht optisch gut differenzierbar sein - siehe unten.
Du sprichst von temporären Dateien, was hast Du damit letztendlich vor?
Sollen diese dauerhaft gespeichert werden, oder sind diese nur kurzfristig von Bedeutung?
Bei Probeläufen von Versuchsaufbauten sollen versch. Parameter gesammelt/dokumentiert und verglichen werden. Da die Probeläufe manchmal längere Laufzeiten haben, halte ich das Erstellen von Log-Dateien für sinnvoll. Die Logs müssen allerdings nicht alle und auch nicht ewig aufbewahrt werden. Sie müssen aber eindeutig bzgl. ihres zeitlichen Verlaufs einzuordnen sein. Auch die Zeitstempel innerhalb der Logs müssen eindeutig und vor allem gut durchsuchbar sein. Das Format YYYYMMTTHHMMSS leistet das vor allem deshalb, weil es eine Zahl ist, die sich nur in den jeweils letzten Stellen ändert (also von "hinten"), somit eindeutig ist und ausschließlich hochzählt. Bei diesem Zahlenformat wird es niemals zu einer Mehrdeutigkeit kommen und nur darauf kommt es an. Würde ich das Format mit Trennern optisch "aufhübsche", müsste ich diese Trenner für Suchläufe nur (mit Mehraufwand) wieder wegparsen müssen.
Bei langfristiger Speicherung der Dateien in dem Format "zeitstempel=$(date "+%Y%m%d%H%M%S")", ist letztendlich nicht zu erkennen, um was für eine Datei und um welchen Inhalt es sich handelt.
Spätestens hier sollte man sich Gedanken um eine entsprechende Lesbarkeit machen, damit das auch langfristig nachvollziehbar ist und bleibt.
Die Lesbarkeit für Menschen, von der du sprichst, spielt in diesem Fall eine untergeordnete Rolle. Für deine Kommentare danke ich dir. Sie haben dafür gesorgt, mir noch einmal Gedanken über das Format des Zeitstempels zu machen. Viele Grüße, Alexander
|
Nobuddy
Anmeldungsdatum: 2. September 2005
Beiträge: 6990
Wohnort: 29614 Soltau
|
Danke, wünsche Dir alles Gute für Dein Projekt! 😉
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17630
Wohnort: Berlin
|
Purpur schrieb: Auch die Zeitstempel innerhalb der Logs müssen eindeutig und vor allem gut durchsuchbar sein. Das Format YYYYMMTTHHMMSS leistet das vor allem deshalb, weil es eine Zahl ist, die sich nur in den jeweils letzten Stellen ändert (also von "hinten"), somit eindeutig ist und ausschließlich hochzählt. Bei diesem Zahlenformat wird es niemals zu einer Mehrdeutigkeit kommen und nur darauf kommt es an. Würde ich das Format mit Trennern optisch "aufhübsche", müsste ich diese Trenner für Suchläufe nur (mit Mehraufwand) wieder wegparsen müssen.
Nein. Abgesehen von den Trennern handelt es sich bei allen Zeichen um Zahlen. Zahlen sind im Asciicode aber aufsteigend von der 0 codiert, so dass eine alphabetische Sortierung einer numerischen entspricht. Die Trennzeichen sind konstant und in jedem Zeitstempel an den gleichen Stellen, sind also für alle Vergleiche neutrale Elemente, da muss nichts weggeparst werden.
|