18

lineinfileモジュールでは、行全体を置き換えます。

行が長い場合は、行全体をもう一度繰り返さなければなりません。

ファイル内の単語を次のように置き換えたいとします。

#abc.conf
This is my horse

これはプレイブックです:

 - lineinfile: dest=abc.conf
               state=present
               regexp='horse'
               line='This is my dog'
               backup=yes

のようなものを達成する方法はありますsed 's/horse/dog/g'か?

4

3 に答える 3

30

バージョン以降で利用可能な新しいモジュールの置き換え:1.6

- replace:
    dest=abc.conf
    regexp='horse'
    replace='dog'
    backup=yes
于 2014-09-11T14:21:06.210 に答える
19

後方参照を使用して、行の他の部分 (変更してはならない部分) を取得できます。

 - lineinfile: dest=abc.conf
               state=present
               regexp='^(.*)horse(.*)$'
               line='\1dog\2'
               backup=yes
               backrefs=yes
于 2014-03-14T13:10:01.700 に答える