Escape Elling ....
Я не смог использовать replace
, вероятно, потому, что я недостаточно старался / умен.Между тем, в вашем конкретном случае вы можете достичь ожидаемого результата с помощью одного regex_replace
вызова фильтра, чтобы было проще (и это сработало сразу:)).
Я использовал сложенные блоки yaml (>
) с контролем пустого пространства (-
), чтобы минимизировать трудности с выходом.Если вы не знаете, что это такое, взгляните на документ yaml ( выучите yaml за y минут - мой любимый документ)
Обратите внимание, что оставшиеся обратные слэши в последнем результате нижедобавляются 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 [Escape chars] ********************************************************************
TASK [Show the untouched var] **********************************************************
ok: [localhost] => {
"test": "curl -s -H \\\"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\\r\\\" https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 | jq -r '.results|.[]|.name'"
}
TASK [Escape the var as intended] ******************************************************
ok: [localhost] => {
"msg": "curl -s -H \"Authorization: JWT eyJ4NWMiOlsiTUlJQytqQ0NBHuHO96csEQ\" https://hub.docker.com/v2/repositories/talasecurityinc/?page_size=10000 | jq -r '.results|.[]|.name'"
}
PLAY RECAP *****************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0