저는 Ansibles replace
모듈을 사용하고 있으며 파일에서 첫 번째 항목만 바꾸고 싶습니다.
샘플 문자열이 있습니다.
example.string.in.my.text=test.@@sometext@@
나는 희망:
example.string.in.my.text=test.$$sometext@@
My Ansible은 replace
게임에 이 모듈을 사용합니다.
- name: tasks replace
replace:
regexp: '(@@+?)'
replace: '$$'
이 임무는 내 모든 것을 바꿔 놓았습니다@@
example.string.in.my.text=test.$$sometext$$
첫 번째 발생만 변경하도록 하려면 어떻게 해야 합니까 @@
?
답변1
GMaster의 답변은 각 줄의 마지막 항목과 일치합니다. 다음 버전은 비탐욕적 일치를 사용하여 줄에서 첫 번째 일치 항목을 찾고 탐욕적 일치를 사용하여 다음 줄과 일치하는 것을 피하기 위해 파일의 나머지 부분을 찾습니다.
- name: tasks replace
replace:
regexp: '^(.*?\.)@@([.\n]*)$'
replace: '\1$$\2'
최신 커뮤니티 버전을 기반으로 답변https://docs.ansible.com/ansible/latest/collections/ansible/builtin/replace_module.html
답변2
- name: tasks replace
replace:
regexp: '^(.*\.)@@(.*)$'
replace: '\1$$\2'