私はこれを達成したいと思います:
setopt HIST_SUBST_PATTERN
echo Ninja_Turtles_2003_S02E05_DVDRip_30NAMA.mkv
^E(0?)^E$((match[1]+1))
# resulting in:
echo Ninja_Turtles_2003_S02E06_DVDRip_30NAMA.mkv
しかし、私は次のようになります。
echo Ninja_Turtles_2003_S02E1_DVDRip_30NAMA.mkv
試してみましたが^(#b)E(0?)^E$((match[1]+1))
成功しませんでした。
ベストアンサー1
必要なextendedglob
オプション(#b)
。
まだありませ05 + 1
ん6
。06
(extendedglob
および使用histsubstpattern
)を実行できます。
^(#b)E(<->)^E${(l:2::0:)$((match[1]+1))}
または:
echo ${_//(#b)E(<->)/${(l:2::0:)$((match[1]+1))}
<->
<x-y>
両方の境界が省略され、空でない10進数シーケンスと一致する正の10進数一致演算子の形式。同じです[0-9]##
(##
グローバル変数を拡張する必要がありますが<x-y>
必須ではありません)。(l:2::0:)
(数字ではなく小文字のLであることに注意してください1
)は、左側のパッドパラメータ拡張フラグ(ここでは0
s、length)です2
。