ansible常用模块之lineinfile模块

第十四个模块: lineinfile模块 确保指定文本不存在文件中,HIA可以根据正则表达式替换"某一行文本"

参数:

path : 指定要操作的文件
line : 指定文本内容
regexp : 使用成则表达式匹配多行,当替换时只有最后匹配的那一行会被替换,当删除时所有匹配行都删除
state : 删除(absent) 默认值为(present)
backrefs : 开启后项引用(yes) / 开启时如果正则没有匹配到行则不对文本进行修改,默认不开启时会将line对应内容写到文尾
insertafter : 可以在将文本插入到"指定行"之前可以设置insertafter的值为EOF(插入到文尾)或者正则表达式(匹配到时插入到匹配行后,没有匹配到时则插入到文尾,当有backrefs参数时忽略此参数)
insertbefore : 在匹配行的前面插入信息
backup : 是否在修改文件前对文件进行备份
create : 当要操作文件不存在时,是否创建对应文件

用法一: 根据正则表达式替换匹配到的最后一行,没有匹配到的话,则不对文本进行修改

ansible 主机 -m lininfile -a 'path=/oldboy/oldboy.txt regexp="^line" line="giao" backerfs=yes'

用法二: 根据文件内容删除匹配到的所有行 (正则regexp="^line"替换掉line="xx"即可

ansible 主机 -m lineinfile -a 'path=/oldboy/oldboy.txt line="giao" state=absent'

用法三: 后项引用替换操作,backerfs=yes

ansible 主机 -m lineinfile -a 'path=/oldboy/oldboy.txt regexp="(H.{4}).*(H.{4})" line="\2" backrefs=yes'
注释: 表示将实例文件中的"HelloxxxxxHoooo"替换为"Hoooo"

你可能感兴趣的:(ansible常用模块之lineinfile模块)