Tom: bestimmte Strings in Dateien ersetzen mit der Bash

Beitrag lesen

Hello,

Ich würde aber wohl generell eher folgendes machen:
Erstmal nach der kompletten korrekten Zeile suchen:
Teil bis zum String abtrennen:
Und dann die neue Zeile zusammen basteln:
Dann mit sed die komplette alte Zeile durch die neue ersetzen lassen:

Hatte ich auch erst gedacht.
Aber wenn ich schon sed oder awk einsetze, brauch eich für diese einfache Ersetzung kein grep und kein cut mehr.

Meine gepostet Lösung ist zwar nicht vollständig für die reale Welt, man kann aber aus dem geposteten und getesteten Code erkennen, was noch fehlt.

Zur Zeit werden alle Zeilen, die eine Zuweisung mit = enthalten modifiziert. Will man das nicht, muss man nur die Suche etwas genauer definieren und die Ersetzung eben ergänzen.

Leider ist mir bisher verborgen geblieben, ob sed Back References oder hier vielmehr Forward References untersützt. Dann könnte man das auch noch universeller machen.

Achtung, hier würde direkt die Originalfatei 'source1.txt' verändert werden.

sed -i 's/assword *= *".*";/assword = "neues_PW";/'  source1.txt

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de