Você precisa da opção extendedglob
para (#b)
.
Também 05 + 1
rende 6
, não 06
.
Você pode fazer (com extendedglob
e histsubstpattern
)
^(#b)E(<->)^E${(l:2::0:)$((match[1]+1))}
Ou:
echo ${_//(#b)E(<->)/${(l:2::0:)$((match[1]+1))}
-
<->
é uma forma de<x-y>
operador de correspondência de número decimal positivo em que ambos os limites são omitidos, portanto, corresponde a qualquer sequência não vazia de dígitos decimais. O mesmo que[0-9]##
(embora##
precise de globagem estendida, enquanto<x-y>
não). -
(l:2::0:)
(observe que é um L minúsculo, não o1
dígito) é o sinalizador de expansão do parâmetro de preenchimento à esquerda, aqui com0
s, de comprimento2
.