Seite 1 von 1

Das Datum in einer Zeile in einer Datei ersetzen?

Verfasst: 5. Feb 2005, 00:10
von Pit2005
Hallo,

ich habe gerade ein mittelschweren Denkknoten und hoffe das Ihr mir auf die Sprünge bzw. zur Lösung helfen könnt.

Also, ich habe eine Datei in der zum Beispiel folgendes steht:
PREFERRED_VERSION_gcc-cross-initial = "3.4.3"
PREFERRED_VERSION_mcp= "cvs-20050112"
PREFERRED_VERSION_joe = "3.1"

In der fettgedruckten Zeile möchte ich jetzt gerne per Script das Datum auf das von heute setzen. Habt Ihr eine Idee wie man das realisieren könnte? Bin für jeden Tip, jeden Codesnipsel sehr dankbar!

Danke und Gruss,
Pit

Verfasst: 5. Feb 2005, 01:46
von robi
Den neuen Datumstring kannst du erzeugen mit

Code: Alles auswählen

date +%G%m%d
und in einer Datei den String austauschen geht mit sed so

Code: Alles auswählen

 sed -e '1,$s/OBST/GEMUESE/g' datei.org > datei.neu
Ändert in der gesammten datei.org jedes Vorkommen von "OBST" in "GEMUESE" und speichert die Ausgabe in datei.neu

Rest dürfte ne Kleinigkeit für dich sein. Ich habs mal in einer Zeile zusammengefasst, (bitte nicht abschreiben, die 4 Hochkomma sind 2 verschiedene Typen auch wenn sie alle hier gleich aussehen sollten,also nur kopieren und einfügen.)

Code: Alles auswählen

 
sed -e '1,$s/cvs-[0-9][0-9][0-9][0-9][0-9[0-9][0-9[0-9][0-9][0-9]/cvs-'$(date +%G%m%d)'/g' datei.org > datei.neu
für alle die hier nur mal reinschauen, das hier war jetzt nicht ein verschlüsseltes Passwort sondern eine Befehlszeile

robi

Verfasst: 7. Feb 2005, 11:16
von regexer
robi hat geschrieben:

Code: Alles auswählen

 
sed -e '1,$s/cvs-[0-9][0-9][0-9][0-9][0-9[0-9][0-9[0-9][0-9][0-9]/cvs-'$(date +%G%m%d)'/g' datei.org > datei.neu
Die vielen [0-9] lassen sich mit Multiplikator anders schreiben. Nämlich so:

Code: Alles auswählen

 [0-9]\{10\}
Das bedeutet: die Ziffer 0-9 muss 10 mal hintereinander auftauchen.