2012-05-02 26 views
21

パペットで正規表現を使用して文字列の置換/変換を行うことはできますか?パペットの文字列置換?

$ hostnameが "web1"の場合、$ hostname_without_numberを "web"にします。以下は有効なパペット構文ではありませんが、私は次のようなものが必要です:

$hostname_without_number = $hostname.gsub(/\d+$/, '') 

答えて

37

はい、可能です。

がpuppet関数の参照を確認してください:http://docs.puppetlabs.com/references/2.7.3/function.html

に内蔵された正規表現置換機能がありますそれはおそらく同じ基本GSUB関数を呼び出します。

$hostname_without_number = regsubst($hostname, '\d+$', '') 

それとも、実際にルビーを呼び出すことを好むならば、あなたはインラインERBテンプレートを使用することができます。このページで

$hostname_without_number = inline_template('<%= hostname.gsub(/\d+$/, "") %>') 
+1

ありがとう!今度は組み込みのregsubst()を使用しますが、inline_templateについても知ってうれしく思います!それは非常に柔軟です。 – richardkmiller

+0

'regsubst()は4番目のフラグargもサポートしています。 'G'などのフラグは、指定された文字列のすべての一致をグローバルに置き換えます。 – killthrush