この場合、一時ディレクトリを使用することもできます。
for file in [[:digit:]]*.png; do echo mv $file tmp/$(printf %04d $((10#${file%.png}+1))).png done
重要なのは、bashがこれをjustと
10#N
解釈するように強制することです。それ以外の場合、先行ゼロは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の10進数で、nはその下の数字です。 base#を省略すると、base 10が使用されます。 9より大きい数字は、小文字、大文字、@、_の順に表示されます。下数が 36 以下の場合は、小文字と大文字を入れ替えて使用して、10 ~ 35 の数字を表すことができます。
答え3
もちろんman bash
内部にありますARITHMETIC EVALUATION
。
LESS=+/'\[base#\]n,' man bash
それ以外の場合、数値は [base#]n 形式を取ります。ここで、オプションの下は算術の下を表す2〜64の10進数で、nはその下の数字です。