Perl

perl中的字元串連接?

  • July 18, 2015

如果這個問題太基本了,我深表歉意,但我對 perl 真的很陌生。現在我想在一行中編寫以下兩行程式碼:

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

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

基本上我想用my_encrypted_password第一行列印的內容替換。但我不知道如何正確編寫它?任何幫助將不勝感激。

你的意思可能是這樣的:

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第一個擷取的部分,依此類推。

引用自:https://unix.stackexchange.com/questions/216907