Pregunta:
El siguiente comando se usa para reemplazar la contraseña en un script, pero el comando perl agrega un espacio en blanco cuando realiza la sustitución
password=arche20
perl -i -p -e "s/^(password[]*=[ ]*).*$/\1 $passwd/" config.properties
cat config.properties
userid=ARCHE
password= arche20
Hace el trabajo, pero parece estar agregando un espacio después de la contraseña cuando se reemplaza. ¿Podría hacerse esto sin el espacio? Tengo una forma sed
:
sed -i "s/password.*/password=$passwd/g"
Respuesta:
Tiene un espacio después de \1
en su reemplazo, simplemente elimínelo y debería estar bien
perl -i -p -e "s/^(password[]*=[ ]*).*$/\1$passwd/" config.properties
^
Removed space here