シェルで実行する必要がある長いテキストの文字列を検索して置き換える方法

シェルで実行する必要がある長いテキストの文字列を検索して置き換える方法

長いテキストがあり、実行を実行するたびに、この長いテキストで同じ文字列を検索して置き換える必要があります。私の質問は、このテキストを検索、置き換え、やり直す前にプレビューする最良の方法は何ですか? :

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"

関連情報