結果文字列でn個の一致したパターンを正確に繰り返す方法は?
次のテキストがある場合の例:
++ '[' -f /etc/bashrc ']'
++ . /etc/bashrc
+++ '[' '[\u@\h \W]\$ ' ']'
+++ '[' -z 'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' ']'
+++ shopt -s checkwinsize
+++ '[' '[\u@\h \W]\$ ' = '\s-\v\$ ' ']'
+++ shopt -q login_shell
+++ '[' 506 -gt 199 ']'
++++ id -gn
ここで、すべての「+」を3つのスペースに置き換えたいのですが、これはパターンの先頭でのみ発生します。私はを使用:<range>s/^<pattern>
:%s/+/ /g
しますが、テキストの残りの部分に「+」が含まれている場合は、単にそれを台無しにします。
質問:最初にすべての+を照合し、結果の文字列で見つかった+の同じカウントを繰り返すにはどうすればよいですか?期待される:
^ ++$ -> ^ $
^ +++$ -> ^ $
^ +$ -> ^ $
ありがとう