ansible - 使用 Ansible 擦除除一行之外的所有行
问题描述
所以我正在使用 Ansible 剧本,我的想法是从调试变量中删除所有行,但保留一个。例如,
- name: Debug
debug:
var: json_response
让我们考虑一下 json_response 有 100 多行。我想找到我的具体词并保持线路。像这样:
保持在您找到单词的位置:“疯狂”
输出.json:
我正在做这个测试
所以大家可以理解
我在说什么
我是一个疯狂的测试
结果 output.json 将是:
我是一个疯狂的测试
现在,我查看了 ansible 的“lineinfile”模块,它说:“这个模块确保特定行在文件中,或者使用反向引用的正则表达式替换现有行”
但这似乎不能满足我的需求,有什么想法吗?
谢谢
解决方案
如果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