perl 中的字符串连接?

perl 中的字符串连接?

如果这个问题太基础了,我很抱歉,但我对 Perl 确实非常陌生。现在我想将以下两行代码写在一行中:

perl -e 'print crypt("my_password","\$6\$my_salt\$")'

perl -pe 's|(root):(\$.*?:)|\1:my_encrypted_password:|' /etc/shadow

基本上我想用my_encrypted_password第一行打印的内容替换 。但我不知道如何正确写?任何帮助将不胜感激。

答案1

你的意思可能是这样的:

perl -pe 's|(?<=root:)[^:]*|crypt("my_password","\$6\$my_salt\$")|e' /etc/shadow

perldoc perlre

    Substitution-specific modifiers described in

    "s/PATTERN/REPLACEMENT/msixpodualngcer" in perlop are:

      e  - evaluate the right-hand side as an expression

在右侧,您可以用来$&引用匹配的部分和$1第一个捕获的部分等等。

相关内容