我有很长的文本,每次执行运行时我都需要搜索并替换这个长文本中的相同字符串;我的问题是搜索和替换此文本并在再次运行之前预览它的最佳方法是什么,例如:
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+后R,zle
将提示您输入图案和替换。
您甚至可以使用诸如FOO_(<->)
模式和FOO_$((match+1))
替换之类的东西来将所有FOO_<number>
s 替换为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"