2017-02-24 84 views
0

我試圖修改文件中的日誌記錄級別(以多行顯示)。要做到這一點,我使用Ansible 2.2的替代模塊如下:Ansible 2.2:替換模塊 - 正則表達式查找不匹配的變量

- replace: 
    dest: log.xml 
    regexp: '<level value=(?!"{{ log_level }}")' 
    replace: '<level value="{{ log_level }}"' 

我的問題是找到正確的路線,但它不會取代舊值。 結果例如用LOG_LEVEL:INFO和舊值等於WARN

<level value="INFO""WARN"/> 

預期結果:

<level value="INFO"/> 

有沒有正確設置正則表達式來刪除舊值的方法嗎?

回答

0

這應該爲你工作:

- replace: 
    dest: log.xml 
    regexp: '<level value=(?!"{{ log_level }}").*/>' 
    replace: '<level value="{{ log_level }}"/>' 

沒有.*只有後面沒有"{{ log_level }}"<level value=你匹配(和更換),但沒有匹配的後半部分。

+0

是的,非常感謝。 – jokeirb

+0

我有另一種情況,其中「 jokeirb