Ansible中是否有等效于grep和cut的命令而不使用命令模块?
我使用的是belowshell命令,结果是一个字符串数组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()|
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"
给予