小编Mun*_*ody的帖子

sed 替换中的嵌套命令

我正在尝试用于在库存文件中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)

command-line bash sed text-processing ansible

2
推荐指数
1
解决办法
341
查看次数

标签 统计

ansible ×1

bash ×1

command-line ×1

sed ×1

text-processing ×1