perl /sed 替换之间的额外空间

perl /sed 替换之间的额外空间

下面的命令用于替换脚本中的密码,但 perl 命令在替换时添加了一个空格

password=arche20
perl -i -p -e "s/^(password[]*=[ ]*).*$/\1 $passwd/" config.properties

cat config.properties
userid=ARCHE
password= arche20

它完成了工作,但在替换时似乎在密码后添加了一个空格。如果没有空间,这可以完成吗?有sed办法了:

sed -i "s/password.*/password=$passwd/g"

答案1

\1替换后有一个空格,只需删除它就可以了

perl -i -p -e "s/^(password[]*=[ ]*).*$/\1$passwd/" config.properties
                                          ^
                                          Removed space here

相关内容