【问题标题】:Ansible filter stdout_lines cut or splitAnsible 过滤器 stdout_lines 剪切或拆分
【发布时间】:2018-11-25 03:18:02
【问题描述】:

我有一个包含几行的变量,我想找到具有此值的行,并且在拆分后基于分隔符并仅取该特定行的第一个值。

Task:1
   - debug:
       var: blabla.stdout_lines

Output
  blabla.stdout_lines:
  - 1 test1 aaa
  - 2 test0 bbb
  - 3 test444 ccc


Task:2
   - name: test
     debug:
       msg: "{{ blabla.stdout | select('search', 'test1') | list }}"
Output
  msg:
  -  1 test1 aaa

我想进行拆分,因此它只在 task2 中直接采用值“1”。我试图做一个 textsplit 并切入它,但似乎它不起作用。 我正在尝试将另一个 Jinja 过滤器添加到 Task2 中。

【问题讨论】:

  • 你的问题很不透明;你的意思是你只想匹配前导数字而不是"search", "test1"?你知道regex_search()吗?
  • @MatthewLDaniel 我希望任务 2 中的输出给我“1”作为输出而不是整行。 .第一个 select('search' ) 查找包含我要查找的行的行,但是在我想对该行进行拆分后,输出为 "1" ,谢谢您的帮助 :)
  • 感谢马修的帮助! Regex_search() 是我一直在寻找的东西:)

标签: python split ansible jinja2


【解决方案1】:

按照 Matthew 的建议设法使用 regex_search()

   - name: Extract valuevariables

     set_fact:

        webapps_not: "{{ blabla.stdout | regex_search('.+?(?=no)') }}"


   - name: Show value

     debug: var=blabla_not

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多