如何在结果字符串中精确重复 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
,但如果文本的其余部分有一个“+”,我只会把它搞砸。
问题:如何在开始时匹配每个 + 并在结果字符串中重复相同的找到 + 计数?预期的:
^ ++$ -> ^ $
^ +++$ -> ^ $
^ +$ -> ^ $
谢谢