Perlで文字列を連結する?

Perlで文字列を連結する?

この質問が基本的すぎると申し訳ありません。しかし、私はPerlに初めて触れます。それでは、次の2行のコードを1行に書きたいと思います。

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最初のキャプチャされた部分などを参照するために使用できます。

おすすめ記事