Utilisation de sed pour remplacer la valeur dans le fichier de configuration ini [duplicate]
Nov 24 2020
Mon fichier de configuration ressemble à:
KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3
J'essaye d'utiliser sed
pour remplacer la valeur d'URL par une autre. Je suis arrivé à ce qui suit:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download&id=mynewhash@g' file.txt
Mais cela ne semble pas fonctionner, comme je le comprends:
URL=https://drive.google.com/uc?export=downloadURL=https://drive.google.com/uc?export=download&id=mynewhash=myhash
Qu'est-ce que je rate? Merci
Réponses
axiac Nov 24 2020 at 00:14
&
est un caractère spécial dans la chaîne de remplacement fournie à la s
commande de sed
. Il représente la chaîne qui correspond à l'ensemble regex
utilisé pour la recherche ( URL=.*
dans votre exemple).
Afin de se représenter, il doit être échappé avec \
:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download\&id=mynewhash@g' file.txt
Tapez man sed
votre terminal pour lire sa documentation ou lire la documentation desed online.