Ansible中是否有等效于grep和cut的命令而不使用命令模块?

Ansible中是否有等效于grep和cut的命令而不使用命令模块?,ansible,ansible-module,Ansible,Ansible Module,我使用的是belowshell命令,结果是一个字符串数组 MQSFILEPARSED=$(cat $FILE | grep ' Name=' | cut -d '=' -f2); 是否有办法在Ansible中执行此操作而不使用命令模块?是。它是。比如说 vars: FILE: test.txt tasks: - set_fact: MQSFILEPARSED: "{{ lookup('file', FILE).splitlines()|

我使用的是belowshell命令,结果是一个字符串数组

MQSFILEPARSED=$(cat $FILE | grep ' Name=' | cut -d '=' -f2);

是否有办法在Ansible中执行此操作而不使用命令模块?是。它是。比如说

  vars:
    FILE: test.txt
  tasks:
    - set_fact:
        MQSFILEPARSED: "{{ lookup('file', FILE).splitlines()|
                           select('match', '^(.*) Name=(.*)$')|
                           map('regex_replace', my_regex, my_replace)|
                           list }}"
      vars:
        my_regex: '^(.*)=(.*)$'
        my_replace: '\2'
    - debug:
        var: MQSFILEPARSED

给予


测试文件

$ cat test.txt
line1
line2
 Name=Value
line4
line5 Name=Value2
测试脚本

$ cat test.sh
#!/bin/sh
FILE=test.txt
MQSFILEPARSED=$(cat $FILE | grep ' Name=' | cut -d '=' -f2)
printf "$MQSFILEPARSED \n"
给予


对。它是。比如说

  vars:
    FILE: test.txt
  tasks:
    - set_fact:
        MQSFILEPARSED: "{{ lookup('file', FILE).splitlines()|
                           select('match', '^(.*) Name=(.*)$')|
                           map('regex_replace', my_regex, my_replace)|
                           list }}"
      vars:
        my_regex: '^(.*)=(.*)$'
        my_replace: '\2'
    - debug:
        var: MQSFILEPARSED

给予


测试文件

$ cat test.txt
line1
line2
 Name=Value
line4
line5 Name=Value2
测试脚本

$ cat test.sh
#!/bin/sh
FILE=test.txt
MQSFILEPARSED=$(cat $FILE | grep ' Name=' | cut -d '=' -f2)
printf "$MQSFILEPARSED \n"
给予