Einfach mal ausprobieren und dann gucken?
Quickie: Automatischer Zeitstempel in Textdatei
- 1440 KiB
- Erledigt
Hinweis: In dem Thema Quickie: Automatischer Zeitstempel in Textdatei gibt es 17 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
-
-
Zitat
Das ist eine Shell- Funktion,, deren paar Zeilen du einfach in deiner $HOME/.bashrc anfügst
Vielen Dank, lieber "Berichtigung", dessen Namen ich schon wieder vergessen habe, obgleich Du mir schon ein paar Mal bestens geholfen hast!
Die vorstehende Einsicht hat mir schon gefehlt! Ich hatte das für vi/vimMagie gehalten, da ich offensichtlich nicht im Thema bin
Deine Lösung ist klar eleganter und ich sage nochmals Danke dafür!
Zitat
Sag, was du __genau__ möchtest,Ich will _genau_ was ich mit dem Pfusch erreicht habe Aber ich war schon nicht mehr gemeint....
Zu Fortbildungszwecken werde ich mich trotzdem direkt drangeben und Deine Lösung mit nano ausprobieren! Man hat so mehr Möglichkeiten, das steht fest.
Ich benötig(t)e halt genau eine Datei die ich nach und nach mit Zeitstempeln und Inhalten fülle.
Ich lasse das Thema mal unerledigt, obwohl mein Birnchen schon geschält ist.
Grüße von
KiB
-
Ich verstehe die Beschreibung so:
Das ursprüngliche Datum der Datei wird mit dem aktuellen Datum in UTC ersetzt.
Nö:
printf "Das is ungefähr $(date -u)\n__________________________\n" >> $1
Diese Anweisung liest sich:Gebe schön formatiert ( printf == print formatted) zuerst die Zeichenkette "Das is ungefähr " aus.
Ersetze aber vorher das $(date -u ) mit der Ausgabe des Befehls "date -u" (was Datum und Zeit in UTC ausgibt).
Und hinterher eine neue Zeile \n
gefolgt von vielen Unterstrichen und noch einer neuen Zeile \n
>> ABER HÄNGE diese Ausgabe an die Datei an, die du mir als erstes Argument beim Aufruf mitgebeben hast.
(Wir erinnern uns: stampit /Pfad/wohin)
Die Ausgabeumlenkung ">>" bewirkt ein Anhängen (oder erstellen) einer Datei.Ein einfaches '">" würde die Datei erstellen oder überschreiben. (Löschen und neu erstellen - technisch gesehen).
Es ist ein fundamentales Konzept der *nix Shells, dass Befehle auf vielfältige Art und Weise umgelenkt und/oder verkettet werden (können).
-
Code
Alles anzeigen1 Mi 7. Okt 16:42:44 CEST 2020 2 Hier steht was..also machen wir die Datei wieder zu. 3 4 Mi 7. Okt 16:42:58 CEST 2020 5 Hier nun auch, wenn man will. 6 Also können wir wieder zu machen 7 8 Mi 7. Okt 16:44:51 CEST 2020 9 10 Mi 7. Okt 19:28:59 CEST 2020 11 asdfsg dsafs fsdfsdf 12 Genau! 13 14 15 Mi 7. Okt 19:36:54 CEST 2020 16 ...aber ich habe einen Fehler gemacht! 17 Mit der vorliegenden Version wird für jeden Pfad aus dem ich das alias aufrufe eine neue Datei geöffnet! 18 Offenbar muss ich da nochmal nacharbeiten! ;) 19 20
Ich korrigiere mich mal selbst:
dann bleibt es bei einer Datei voller Zeitstempel.
-
Wir haben zwar immernoch keinen Editor gefunden der das Gewünschte als eingebaute Funktion mitbringt.... Aber meine Frage hake ich mal als gelöst ab.
Ich beobachte den Thread gerne weiter und freue mich auf neue Ansätze oder Weisheit in Sachen Software für Text mit Zeitstempel! Das Tagebuchprogramm almanah verschlüsselt die Eingaben ja noch. Schwach zwar, aber immerhin Ist wie erwähnt aber nur etwas für Jemanden der GNOME ohnehin auf dem Rechner hat.
Wer kennt noch was Leichtgewichtiges das den gleichen Job tut?
Grüße von
KiB
-
cryfs ist state- of- the- art.
-
printf "Das is ungefähr $(date -u)\n__________________________\n" >> $1
Diese Anweisung liest sich:
Gebe schön formatiert ( printf == print formatted) zuerst die Zeichenkette "Das is ungefähr " aus.
Ersetze aber vorher das $(date -u ) mit der Ausgabe des Befehls "date -u" (was Datum und Zeit in UTC ausgibt).
Und hinterher eine neue Zeile \n
gefolgt von vielen Unterstrichen und noch einer neuen Zeile \n
>> ABER HÄNGE diese Ausgabe an die Datei an, die du mir als erstes Argument beim Aufruf mitgebeben hast.
(Wir erinnern uns: stampit /Pfad/wohin)
Die Ausgabeumlenkung ">>" bewirkt ein Anhängen (oder erstellen) einer Datei.
Ein einfaches '">" würde die Datei erstellen oder überschreiben. (Löschen und neu erstellen - technisch gesehen).
Es ist ein fundamentales Konzept der *nix Shells, dass Befehle auf vielfältige Art und Weise umgelenkt und/oder verkettet werden (können).
Da muss ich Dich auch mal berichtigen
Das Date Kommando wird umgewandelt in einen Datums-String, weil es in doppelten Anführungszeichen steht, das würde mit echo genauso gehen. Ohne Prozent Platzhalter ist printf oder sprintf recht witzlos und wahrscheinlich auch langsamer in der Ausführung. printf bzw. sprintf sind C Funktionen. %s steht für "setze an der Stelle einen String" also der Reihenfolge nach, wie man die Parameter nach den zu ersetzenden String angibt.
Normalerweise kann man in PHP & Co., also Skript- oder Programmiersprachen, die die C Funktionen schlicht durchreichen auch sowas machen, um die Parameter beliebig oft benutzen zu können, aber das klappte irgendwie in der Bash nicht:
Codeprintf "Aepfel sind %1$s, Birnen sind auch %1$s. Aber Spinat zaehlt zum %2$s und nicht zum %1$s\n" "Fruechte" "Gemuese"
Mit z. B. %d kann man Zahlen formatiert ausgeben, also beispielsweise X Nullen voranstellen um alle Zahlen auf die gleiche Länge zu bringen; oder eine Nachkommastellen Präzision einstellen. Dazu am besten mal die man Page konsolidieren, den genauen Syntax muss ich auch jedes mal nachsehen.
Die Pipe Funktionen (oder wie man das nennen soll) >> und > sind C's STDOUT und haben per se nichts mit Unix zu tun, das geht auch in Windows. Aber ja, C wurde ursprünglich von der NASA für Unix entwickelt.
-
Das war eine Bash- Funktion.
Und ja natürlich: Das Bash- printf greift letztlich (je nachdem, wie man das linked) auf die gleiche C- Routine zu.
(weshalb ich zuerst die Bash- Doku konsultieren würde)
Aber immer noch nur eine der drölfmillarden Möglichkeiten das vorgebene Ziel zu erreichen.