chefでsedコマンドなどを実行するときのエスケープ処理

Tetsuro Aoki 2,276views 更新:2014年6月3日

chefでsedコマンドなどを実行するとき、対象の文字列にエスケープ処理が必要な場合があります。
具体的には、 \ 、 [ 、 ] 、 | などです。
コマンドラインでこれらをエスケープするときは通常 \\ 、 \[ などのように “\” を頭につけますが、
chefで実行する場合は頭につける “\” にもエスケープ処理を行わなければならないようです。

例えば、[ ] のエスケープは以下のようになります。

execute "action" do
  command <<-EOH
    sed -i "s/\\[\\]/sample/g" test.txt
  EOH
end

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません