我正在使用下面的 shell 命令,结果是一个字符串数组
MQSFILEPARSED=$(cat $FILE | grep ' Name=' | cut -d '=' -f2);
有没有办法在不使用命令模块的情况下在 Ansible 中执行此操作
我正在使用下面的 shell 命令,结果是一个字符串数组
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
给
"MQSFILEPARSED": [
"Value",
"Value2"
]
$ 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"
给
Value
Value2