Używanie seda do zamiany wartości w pliku konfiguracyjnym ini [duplikat]
Nov 24 2020
Mój plik konfiguracyjny wygląda następująco:
KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3
Próbuję sed
zastąpić wartość adresu URL inną. Dotarłem do następujących:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download&id=mynewhash@g' file.txt
Ale to nie działa, ponieważ otrzymuję:
URL=https://drive.google.com/uc?export=downloadURL=https://drive.google.com/uc?export=download&id=mynewhash=myhash
czego mi brakuje? Dzięki
Odpowiedzi
axiac Nov 24 2020 at 00:14
&
jest specjalnym znakiem w łańcuchu zastępczym dostarczonym do s
polecenia sed
. Reprezentuje ciąg, który pasuje do całości regex
użytego do wyszukiwania ( URL=.*
w twoim przykładzie).
Aby się przedstawić, należy przed nim uciec \
:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download\&id=mynewhash@g' file.txt
Wpisz man sed
swój terminal, aby przeczytać jego dokumentację lub przeczytać dokumentacjęsed online.