我有一个包含两行的文件:
#Level menu
Level menu
我想检查一行Level
只有menu
。如果不是这样,则替换该行,因此我对lineinfile
任务使用了以下参数:
dest=/var/apache/test.conf
regexp="^\s*#*?\s*Level"
line="Level menu"
当我运行剧本时,文件中有两行:
Level menu
Level menu
因此出现了重复的行。
案例1:
#Level menu
情况2:
#Level menu
Level menu
情形3:
Level submenu
在所有情况下都应回答Level menu
。
我想首先检查没有评论行,如果没有,那么检查注释行或是否还有其他解决方案?
答案 0 :(得分:1)
如果我正确地阅读了您的要求,那么您正在寻找一些简单的内容:
- lineinfile:
dest: /var/apache/test.conf
regexp: ^Level
line: Level menu
- lineinfile:
dest: /var/apache/test.conf
regexp: ^#Level
state: absent
示例1:
在:
#Level menu
Level menu
后:
Level menu
示例2:
在:
#Level menu
Level menu and something else
后:
Level menu