이 경우 임시 디렉터리를 사용하게 될 수도 있습니다.
for file in [[:digit:]]*.png; do echo mv $file tmp/$(printf %04d $((10#${file%.png}+1))).png done
중요한 부분은 bash가 이를 just 로
10#N
해석하도록 강제하는 것 입니다 . 그렇지 않으면 선행 0이 8진수를 나타냅니다.000N
N
10#N
산술 확장의 일부입니까, 아니면 다른 것입니까 ?
이것이 Bash 매뉴얼이나 POSIX 사양에 언급되어 있습니까? 못 찾겠 어.
답변1
10#N
또는 해당 진수의 숫자로 해석되는 일반 형식 [base#]n
입니다 .2 <= base <= 64
n
설명서 bash
, 부분쉘 산술이것이 언급되었습니다.
bash
이 기능은 POSIX에서 지정하지 않으며 2에서 36 사이의 베이스를 가진 파생 상품에서만 사용할 수 있습니다 .ksh
zsh
답변2
산술 평가 섹션에서배쉬 매뉴얼,
0으로 시작하는 상수는 8진수로 해석됩니다. 앞에 0x 또는 0X가 있으면 16진수를 나타냅니다. 그렇지 않은 경우 숫자는 [base#]n 형식을 취합니다. 여기서 base는 산술 밑을 나타내는 2~64 사이의 십진수이고 n은 해당 밑의 숫자입니다. base#을 생략하면 base 10이 사용됩니다. 9보다 큰 숫자는 소문자, 대문자, @, _의 순서로 표시됩니다. 밑수가 36보다 작거나 같은 경우 소문자와 대문자를 서로 바꿔서 사용하여 10에서 35 사이의 숫자를 나타낼 수 있습니다.
답변3
물론 man bash
내부에 있습니다 ARITHMETIC EVALUATION
.
LESS=+/'\[base#\]n,' man bash
그렇지 않은 경우 숫자는 [base#]n 형식을 취합니다. 여기서 선택적 밑은 산술 밑을 나타내는 2~64 사이의 십진수이고 n은 해당 밑의 숫자입니다.