쉘에서 실행해야 하는 긴 텍스트의 문자열을 검색하고 바꾸는 방법

쉘에서 실행해야 하는 긴 텍스트의 문자열을 검색하고 바꾸는 방법

긴 텍스트가 있고 실행을 실행할 때마다 이 긴 텍스트에서 동일한 문자열을 검색하고 바꿔야 합니다. 제 질문은 이 텍스트를 검색하고 바꾸고 다시 실행하기 전에 미리 보는 가장 좋은 방법이 무엇인지입니다. :

ansible-playbook ~/main.yml --extra-vars "selected_playbook=start_here.yml url=http://app.zip name='FOO_1' tag='FOO_1' region=us-east-1 owner='FOO_1' DB_USERNAME=FOO_1"

모든 FOO_1을 FOO_2로 바꾸고 싶습니다.

답변1

를 사용하려면 zsh다음을 입력하세요 ~/.zshrc.

autoload -Uz replace-string
zle -N replace-string-pattern replace-string
bindkey '\er' replace-string-pattern

그런 다음 Alt+를 누르면 패턴과 교체를 입력하라는 메시지가 표시됩니다.Rzle

FOO_(<->)패턴 및 FOO_$((match+1))교체 와 같은 것을 사용하여 FOO_<number>모든 를 FOO_<number+1>.

그런 다음 replace-string동일한 패턴+대체(누른 경우)가 기본적으로 재사용되므로 Enter동일한 명령을 다시 실행하여 매번 양을 늘리는 것이 쉽습니다. 하지만 이를 위해 다음을 수행하는 것이 더 나을 수도 있습니다.

for n (FOO_{1..10}) ansible-playbook ~/main.yml --extra-vars "selected_playbook=start_here.yml url=http://app.zip name='$n' tag='$n' region=us-east-1 owner='$n' DB_USERNAME=$n"

관련 정보