首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible:可以搜索替换单个单词吗?

Ansible:可以搜索替换单个单词吗?
EN

Stack Overflow用户
提问于 2014-03-14 15:06:22
回答 3查看 35.4K关注 0票数 18

lineinfile模块中,它替换了整个行。

如果一行很长,我必须将整行重复一遍。

假设我想替换文件中的单个单词:

代码语言:javascript
复制
#abc.conf
This is my horse

这是实战手册:

代码语言:javascript
复制
 - lineinfile: dest=abc.conf
               state=present
               regexp='horse'
               line='This is my dog'
               backup=yes

有没有办法实现像sed 's/horse/dog/g'这样的东西呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-14 21:10:02

您可以使用backreferences检索该行的其他部分(不应更改):

代码语言:javascript
复制
 - lineinfile: dest=abc.conf
               state=present
               regexp='^(.*)horse(.*)$'
               line='\1dog\2'
               backup=yes
               backrefs=yes
票数 19
EN

Stack Overflow用户

发布于 2014-09-11 22:21:06

1.6版本开始提供的新模块replace

代码语言:javascript
复制
- replace:
    dest=abc.conf
    regexp='horse'
    replace='dog'
    backup=yes
票数 30
EN

Stack Overflow用户

发布于 2015-08-26 21:26:34

如果您需要在一个块中执行更多替换操作,并且文件位于本地,则可能需要考虑使用模板,它将替换模板文件中的变量并将文件复制到远程数据库:

代码语言:javascript
复制
- template: src=/mytemplates/foo.j2 dest=/etc/file.conf

在本地文件中,您可以使用ansible sintax编写一个变量,如下所示

代码语言:javascript
复制
{{variable}}

如果它在脚本的作用域中,它将被替换。对文档执行Here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22398302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档