Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Das Datum in einer Zeile in einer Datei ersetzen?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Pit2005
Newbie
Newbie
Beiträge: 5
Registriert: 5. Feb 2005, 00:07

Das Datum in einer Zeile in einer Datei ersetzen?

Beitrag 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
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3182
Registriert: 25. Aug 2004, 02:13

Beitrag 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
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag 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.
Antworten