Verwenden von sed zum Ersetzen des Werts in der INI-Konfigurationsdatei [Duplikat]

Nov 24 2020

Meine Konfigurationsdatei sieht folgendermaßen aus:

KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3

Ich versuche, sedden URL-Wert durch einen anderen zu ersetzen. Ich bin zu folgendem gekommen:

sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download&id=mynewhash@g' file.txt

Aber das scheint nicht zu funktionieren, wie ich bekomme:

URL=https://drive.google.com/uc?export=downloadURL=https://drive.google.com/uc?export=download&id=mynewhash=myhash

Was vermisse ich? Vielen Dank

Antworten

axiac Nov 24 2020 at 00:14

&ist ein Sonderzeichen in der Ersatzzeichenfolge, die für den sBefehl von bereitgestellt wird sed. Es stellt die Zeichenfolge dar, die der gesamten regexfür die Suche verwendeten Zeichenfolge entspricht ( URL=.*in Ihrem Beispiel).

Um sich selbst darzustellen, muss es entkommen mit \:

sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download\&id=mynewhash@g' file.txt

Geben Sie man sedIhr Terminal ein, um die Dokumentation zu lesen, oder lesen Sie die Dokumentation vonsed online.