나는 이것을 달성하고 싶습니다 :
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
.