
Ich möchte die Zeichenfolge aller in Verzeichnissen vorhandenen JS-Dateien ersetzen
export name="test_user" &&
echo $customerName &&
sed -i -- 's/this.NAME=""/this.NAME=\"'$name'\"/g' *.js
Wenn ich kein Leerzeichen verwende, funktioniert es einwandfrei, aber mit der Zeichenfolge oben schlägt der Befehl fehl
Antwort1
's/this\.NAME=""/this.NAME="'"$name"'"/g'
In Teile zerlegt:
's/this\.NAME=""/this.NAME="'
"$name"
, das ist der wichtige Teil: Die Variablenerweiterung muss in Anführungszeichen gesetzt werden.'"/g'
Wenn Sie außerdem \"
bei der Ersetzung „in einfachen Anführungszeichen“ verwenden, würden Sie in das Ergebnis einfügen \"
und nicht „ ."
Sie scheinen auch eine Variable namens zu verwenden customerName
. Ich gehe davon aus, dass es sich dabei um einen Tippfehler handelt.
Ob das sed
von Ihnen verwendete Programm die von Ihnen gewünschte Bearbeitung direkt vor Ort ermöglicht, weiß ich nicht.
Verwandt: