Usando sed para reemplazar el valor en el archivo de configuración ini [duplicado]
Nov 24 2020
Mi archivo de configuración se ve así:
KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3
Estoy tratando de usar sedpara reemplazar el valor de la URL con otro. Llegué a lo siguiente:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download&id=mynewhash@g' file.txt
Pero eso no parece funcionar, ya que estoy recibiendo:
URL=https://drive.google.com/uc?export=downloadURL=https://drive.google.com/uc?export=download&id=mynewhash=myhash
¿Qué me estoy perdiendo? Gracias
Respuestas
axiac Nov 24 2020 at 00:14
&es un carácter especial en la cadena de reemplazo proporcionada al scomando de sed. Representa la cadena que coincide con la totalidad regexutilizada para buscar ( URL=.*en su ejemplo).
Para representarse a sí mismo, debe escaparse con \:
sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download\&id=mynewhash@g' file.txt
Escriba man sedsu terminal para leer su documentación o leer la documentación ensed línea.