Replace Ansible-替换“;和\r\n在变量中
我想用Ansible替换变量内容中的Replace Ansible-替换“;和\r\n在变量中,replace,ansible,escaping,jinja2,double-quotes,Replace,Ansible,Escaping,Jinja2,Double Quotes,我想用Ansible替换变量内容中的“和\r\ 我在变量结果中有以下数据,我将上一个任务的输出注册到变量中 curl -s -H \"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\r\" https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 | jq -r '.results|.[]|.name' 在上面的内容中,我想用null替换\和\r\
“
和\r\
我在变量结果中有以下数据,我将上一个任务的输出注册到变量中
curl -s -H \"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\r\" https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 | jq -r '.results|.[]|.name'
在上面的内容中,我想用null替换\
和\r\
我试过下面的方法,但对我不起作用
- set_fact: final_out="{{result | replace('\', "") | replace('\r\', '')}}"
预期产量为
curl -s -H "Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ" https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 | jq -r '.results|.[]|.name'
示例剧本片段对我很有帮助,因为我是ansible的新手。逃离地狱
我无法使用replace
,可能是因为我不够努力/聪明。同时,在您的特定情况下,您可以通过一个regex\u replace
筛选器调用来实现预期的结果,因此它更容易(而且很快就成功了:)
我使用yaml折叠块(
)和空白控制(-
)来最小化逃跑的麻烦。如果你不知道那是什么,请看一看yaml文档(这是我最喜欢的)
请注意,下面最后一个结果中的剩余反斜杠由ansible添加,以转义输出中的双引号
---
- name: Escape chars
hosts: localhost
gather_facts: false
vars:
test: >-
curl -s -H \"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\r\"
https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000
| jq -r '.results|.[]|.name'
tasks:
- name: Show the untouched var
debug:
var: test
- name: Escape the var as intended
debug:
msg: >-
{{ test | regex_replace('\\r?\\?', '') }}
导致
PLAY[逃逸角色]********************************************************************
任务[显示未触及的变量]**********************************************************
确定:[本地主机]=>{
“测试”:“curl-s-H\\\”授权:JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\\r\\”https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 |jq-r'.results |.[]|.name''
}
任务[按预期转义变量]******************************************************
确定:[本地主机]=>{
“msg”:“curl-s-H \”授权:JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ \”https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 |jq-r'.results |.[]|.name''
}
重演*****************************************************************************
localhost:ok=2已更改=0无法访问=0失败=0
逃离地狱
我无法使用replace
,可能是因为我不够努力/聪明。同时,在您的特定情况下,您可以通过一个regex\u replace
筛选器调用来实现预期的结果,因此它更容易(而且很快就成功了:)
我使用yaml折叠块(
)和空白控制(-
)来最小化逃跑的麻烦。如果你不知道那是什么,请看一看yaml文档(这是我最喜欢的)
请注意,下面最后一个结果中的剩余反斜杠由ansible添加,以转义输出中的双引号
---
- name: Escape chars
hosts: localhost
gather_facts: false
vars:
test: >-
curl -s -H \"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\r\"
https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000
| jq -r '.results|.[]|.name'
tasks:
- name: Show the untouched var
debug:
var: test
- name: Escape the var as intended
debug:
msg: >-
{{ test | regex_replace('\\r?\\?', '') }}
导致
PLAY[逃逸角色]********************************************************************
任务[显示未触及的变量]**********************************************************
确定:[本地主机]=>{
“测试”:“curl-s-H\\\”授权:JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\\r\\”https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 |jq-r'.results |.[]|.name''
}
任务[按预期转义变量]******************************************************
确定:[本地主机]=>{
“msg”:“curl-s-H \”授权:JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ \”https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 |jq-r'.results |.[]|.name''
}
重演*****************************************************************************
localhost:ok=2已更改=0无法访问=0失败=0
什么在生成curl
命令行?什么在生成curl
命令行?