unix sed – Reemplazo de Perl / Sed

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

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım