使用Ansible擦除除一行以外的所有行

时间:2018-11-22 11:11:42

标签: ansible

所以我正在使用Ansible剧本,我的想法是从调试变量中删除所有行,但保留其中一行。例如,

- name: Debug
  debug:
    var: json_response

让我们考虑json_response有100多行。我想找到我的特定单词并保持一致。像这样:

在找到单词“ crazy”的那一行上保持一行

output.json:

  

我正在做这个测试

     

所以你们可以理解

     

我在说什么

     

我是个疯狂的考试

结果output.json将是:

  

我是个疯狂的考试

现在,我已经查看了ansible的“ lineinfile”模块,它说: “此模块确保文件中包含特定行,或使用向后引用的正则表达式替换现有行”

但这似乎并不能满足我的需求吗?

谢谢

1 个答案:

答案 0 :(得分:1)

如果json_response是正确的json数据,则可以使用json_query过滤器搜索关键字:https://docs.ansible.com/ansible/2.7/user_guide/playbooks_filters.html#json-query-filter

否则,如果它是简单的多行字符串,则可以改用regex_search过滤器:https://docs.ansible.com/ansible/2.7/user_guide/playbooks_filters.html#regular-expression-filters