Stefanie: bestimmte Strings in Dateien ersetzen mit der Bash

Beitrag lesen

Hi,

do grep ^$password $i |cut -d '"' -f 2;

was steht hier in $i? Kann die entsprechende Zeile mehrmals in der Datei vorkommen oder nur einmal?

String1 müsstest Du so lesen können:

string1=grep -e "^(my)? '$passwort'" | cut -d\" -f2

Ich würde aber wohl generell eher folgendes machen:

Erstmal nach der kompletten korrekten Zeile suchen:

alteZeile=grep -e "^(my)? '$password' \*\".\*\"\;$"

Teil bis zum String abtrennen:

ersterTeil=`echo $alteZeile | cut -d" -f1

Und dann die neue Zeile zusammen basteln:

neueZeile=echo $ersterTeil"\""$string2"\""

Dann mit sed die komplette alte Zeile durch die neue ersetzen lassen:

sed -i 's/'$alteZeile'/'$neueZeile'/g' dateiname

Das ist jetzt nicht getestet! Kann also sein, dass nicht alles korrekt escaped ist und jedes Hochkommata richtig sitzt.

Ciao, Stefanie