所以我正在使用Ansible剧本,我的想法是从调试变量中删除所有行,但保留其中一行。例如,
- name: Debug
debug:
var: json_response
让我们考虑json_response有100多行。我想找到我的特定单词并保持一致。像这样:
在找到单词“ crazy”的那一行上保持一行
output.json:
我正在做这个测试
所以你们可以理解
我在说什么
我是个疯狂的考试
结果output.json将是:
我是个疯狂的考试
现在,我已经查看了ansible的“ lineinfile”模块,它说: “此模块确保文件中包含特定行,或使用向后引用的正则表达式替换现有行”
但这似乎并不能满足我的需求吗?
谢谢
答案 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