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