我正在尝试用于在库存文件中sed查找和加密ansible_password字段并使用ansible-vault命令对其进行加密。但是ansible-command没有抛出sed错误,因为简单的回声工作正常。
sed -n "s/\( *\)\(ansible_password\: *\)\"\(.*\)\"/$(echo \\3)/p" sample.yml
Run Code Online (Sandbox Code Playgroud)
输出没有双引号的属性值。
该ansible-vault命令:
sed -n "s/\( *\)\(ansible_password\: *\)\"\(.*\)\"/$(ansible-vault encrypt_string --vault-password-file ~/password.txt --name 'ansible_password' '\\3')/p" sample.yml
Run Code Online (Sandbox Code Playgroud)
正在抛出错误消息: sed: -e expression #1, char 67: unterminated ``s' command
这是发生替换的行:
ansible_password: "somepassword"
Run Code Online (Sandbox Code Playgroud)