ansible文件操作模块--lineinfile模块

lineinfile模块

lineinfile模块功能
我们可以借助lineinfile模块,确保"某一行文本"存在于指定的文件中,或者确保从文件中删除指定的"文本" (即确保指定的文本不存在于文件中) ,还可以根据正则表达式,替换"某一行文本"。

lineinfile模块参数
path参数:必须参数,指定要操作的文件。

line参数:使用此参数指定文本内容。

regexp参数:使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除。

state参数:当想要删除对应的文本时,需要将state参数的值设置为absent, absent为缺席之意,表示删除,state的状认值为present

insertafter参数:借助insertafter参数可以将文本插入到指定的行之后,insertafter参数的值可以设置为EOF或者正则表达式,EOF为End Of File之意,表示插入到文档的末尾,默认情况下insertafter的值为EOF。如果将insertafter的值设置为正则表达式,表示将文本插入到匹配到正则的行之后,如果正则没有匹配到任何行,则插入到文件末尾

insertbefore参数:借助insertbefore参数可以将文本插入到“指定的行”之前,insertbefore参数的值可以设置为BOF或者正则表达式,BOF为Begin Of File之意,表示插入到文档的开头,如果将insertbefore的值设置为正则表达式,表示将文本插入到匹配到正则的行之前,如果正则没有匹配到任何行, 则插入到文件末尾

backup参数:是否在修改文件之前对文件进行备份。

create参数:当要操作的文件并不存在时,是否创建对应的文件。

模块应用:
在末尾添加文本:

[root@server1 testdir]# ansible testB -m lineinfile -a "name=/testdir/test line='test test'"

在这里插入图片描述
在这里插入图片描述
正则表达式替换:
例如替换wcc开头的,则替换最后一个wcc开头的

[root@server1 testdir]# ansible testB -m lineinfile -a "name=/testdir/test regexp="^wcc" line='test33'"

在这里插入图片描述
删除:(利用正则表达式)

[root@server1 testdir]# ansible testB -m lineinfile -a "name=/testdir/test regexp="^test" state=absent"

在这里插入图片描述
注意利用正则表达式替换的时候只改一个,删除的时候均会删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值